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

Skip to content

Commit 63812b7

Browse files
committed
Friendly error on KNeighbors(n_neighbors<=0 )
1 parent fc681f2 commit 63812b7

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -830,6 +830,10 @@ def test_neighbors_badargs():
830830
assert_raises(ValueError,
831831
nbrs.predict,
832832
[])
833+
if (isinstance(cls, neighbors.KNeighborsClassifier) or
834+
isinstance(cls, neighbors.KNeighborsRegressor)):
835+
nbrs = cls(n_neighbors=-1)
836+
assert_raises(ValueError, nbrs.fit, X, y)
833837

834838
nbrs = neighbors.NearestNeighbors().fit(X)
835839

0 commit comments

Comments
 (0)
0