Reputation: 103
I've tried to call predict function of nearest neighbor and got the following error:
AttributeError: 'NearestNeighbors' object has no attribute 'predict'
The code is:
from sklearn.neighbors import NearestNeighbors
samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
neigh = NearestNeighbors()
neigh.fit(samples)
neigh.predict([[1., 1., 1.]]) # this cause error
I've read the documentation and it has predict function: http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
How to do the predict?
Upvotes: 10
Views: 16953
Reputation: 7553
Your are confusing the NearestNeighbors
class and the KNeighborsClassifier
class. Only the second one has the predict
function.
Note the example from the link you posted:
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X, y)
print(neigh.predict([[1.1]]))
print(neigh.predict_proba([[0.9]]))
The NearestNeighbors
class is unsupervised and can not be used for classification but only for nearest neighbour searches.
Upvotes: 18