Skip to content

Instantly share code, notes, and snippets.

@amueller
Created January 23, 2012 21:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amueller/1665623 to your computer and use it in GitHub Desktop.
Save amueller/1665623 to your computer and use it in GitHub Desktop.
Weird kneibors behaviour
from sklearn import datasets, manifold
from sklearn.neighbors import NearestNeighbors
import numpy as np
n_points = 1000
n_neighbors = 10
out_dim = 2
n_trials = 100
X, _ = datasets.samples_generator.make_s_curve(n_points, random_state=123)
for i in xrange(n_trials):
knn = NearestNeighbors(n_neighbors + 1).fit(X)
print("with return")
asdf = knn.kneighbors(X, return_distance=True) # will give no warning
print("without return")
knn.kneighbors(X, return_distance=True) # will give warning in second go of loop
print(i)
@amueller
Copy link
Author

with return
without return
0
with return
without return
1
with return
without return
Traceback (most recent call last):
File "testlle.py", line 15, in
knn.kneighbors(X, return_distance=True) # will give warning in second go of loop
File "/home/amueller/checkout/scikit-learn/sklearn/neighbors/base.py", line 225, in kneighbors
warn_equidistant()
File "/home/amueller/checkout/scikit-learn/sklearn/neighbors/base.py", line 23, in warn_equidistant
raise ValueError
ValueError

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment