在不拟合模型(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')

如果查看KNeighborsClassifier代码,knn实例将在self中存储经过训练的参数/信息。这就是程序知道的原因。

有关更多详细信息,请参阅触发knn.predict的时间。

  • 它首先在中调用neigh_dist, neigh_ind = self.kneighbors(X)sklearnneighbors_classification.py(线路#175(
  • 接下来,它在sklearnneighbors_base.py中调用check_is_fitted(self)(第585行(

相关内容

最新更新