user25629298551
user25629298551

Reputation: 103

Call predict function for nearest neighbor (knn) classifier with Python scikit sklearn

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

Answers (1)

sietschie
sietschie

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

Related Questions