猿问

在不拟合模型的情况下进行预测(knn)

当我评论knn.fit(x_tr,y_tr)下面的代码并运行时,它给出了一个错误NotFittedError: This KNeighborsClassifier instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.


knn = KNeighborsClassifier(n_neighbors=1)

print(knn)

# knn.fit(x_tr, y_tr)

# print(knn)

pred = knn.predict(x_cv)

acc = accuracy_score(y_cv, pred, normalize=True) * float(100)

我的断开连接是我没有保存knn.fit(...)在任何变量中,程序怎么知道我没有安装?


此外,当我在启动后和拟合后打印模型时......它完全相同


KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',

                     metric_params=None, n_jobs=None, n_neighbors=1, p=2,

                     weights='uniform')

KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',

                     metric_params=None, n_jobs=None, n_neighbors=1, p=2,

                     weights='uniform')


凤凰求蛊
浏览 199回答 1
1回答

LEATH

如果您查看代码KNeighborsClassifier,knn实例会将经过训练的参数/信息存储在self. 这就是程序知道的原因。有关详细信息,何时knn.predict触发。它首先调用neigh_dist, neigh_ind = self.kneighbors(X)( sklearn\neighbors\_classification.py第 175 行)接下来,它调用 check_is_fitted(self)(sklearn\neighbors\_base.py第 585 行)
随时随地看视频慕课网APP

相关分类

Python
我要回答