我尝试调用最近邻的预测函数时,遇到了以下错误:
AttributeError: 'NearestNeighbors' object has no attribute 'predict'
代码如下:
from sklearn.neighbors import NearestNeighborssamples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]neigh = NearestNeighbors()neigh.fit(samples)neigh.predict([[1., 1., 1.]]) # this cause error
我已经查阅了文档,文档中确实有预测函数: http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
如何进行预测呢?
回答:
你混淆了NearestNeighbors
类和KNeighborsClassifier
类。只有后者才有predict
函数。
请注意你所提供的链接中的示例:
X = [[0], [1], [2], [3]]y = [0, 0, 1, 1]from sklearn.neighbors import KNeighborsClassifierneigh = KNeighborsClassifier(n_neighbors=3)neigh.fit(X, y) print(neigh.predict([[1.1]]))print(neigh.predict_proba([[0.9]]))
NearestNeighbors
类是无监督的,不能用于分类,只能用于最近邻搜索。