8000 Friendly error on KNeighbors(n_neighbors<=0 ) · scikit-learn/scikit-learn@d2cdcb5 · GitHub
[go: up one dir, main page]

Skip to content

Commit d2cdcb5

Browse files
committed
Friendly error on KNeighbors(n_neighbors<=0 )
1 parent 2badad3 commit d2cdcb5

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

sklearn/neighbors/base.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,14 @@ def _fit(self, X):
258258
else:
259259
raise ValueError("algorithm = '%s' not recognized"
260260
% self.algorithm)
261+
262+
if self.n_neighbors is not None:
263+
if self.n_neighbors <= 0:
264+
raise ValueError(
265+
"Expected n_neighbors > 0. Got %d" %
266+
self.n_neighbors
267+
)
268+
261269
return self
262270

263271

sklearn/neighbors/tests/test_neighbors.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,13 @@ def test_neighbors_badargs():
834834
assert_raises(ValueError,
835835
nbrs.predict,
836836
[])
837+
if isinstance(cls, neighbors.KNeighborsClassifier) or \
838+
isinstance(cls, neighbors.KNeighborsRegressor):
839+
nbrs = cls(n_neighbors=-1)
840+
assert_raises(ValueError,
841+
nbrs.fit,
842+
X, y)
843+
837844

838845
nbrs = neighbors.NearestNeighbors().fit(X)
839846

0 commit comments

Comments
 (0)
0