Я работаю с данными EEG о движении глаз UCI с помощью KNN
, и я установил параметр weights
равным distance
. Ниже мой код:
test_scores = []
train_scores = []
for i in range(1,7):
knn = KNeighborsClassifier(i,weights="distance")
knn.fit(X_train,y_train)
test_scores.append(knn.score(X_test,y_test))
train_scores.append(knn.score(X_train,y_train))
Теперь для точности train он дает выход 1,0 для всех значений k, как это:
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
Обновление # 1 То же самое с этим примером
from sklearn.datasets import load_boston
from sklearn.neighbors import KNeighborsRegressor
from sklearn.preprocessing import scale
boston = load_boston()
y = boston.target
X = scale(boston.data)
print(X.shape)
knn = KNeighborsRegressor(n_neighbors=5, weights='distance')
knn.fit(X[:-100,:], y[:-100])
knn.score(X[:-100,:], y[:-100])
Может ли модель вести себя так, когда вес установлен на расстоянии? Кто-нибудь может продемонстрировать, как будет назначен этот вес, и помочь лучше понять работу?