當我評論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')
1 回答

LEATH
TA貢獻1936條經驗 獲得超7個贊
如果您查看代碼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 行)
添加回答
舉報
0/150
提交
取消