Вы пытаетесь предсказать вывод числовых значений c, поэтому ваша проблема - это регрессия , , а не классификация. Классификаторы не будут работать, ни точность не является правильным показателем производительности здесь.
Вам необходимо использовать показатель производительности c, подходящий для регрессии - см. Список в документации ; предполагая, что вы хотите использовать среднюю абсолютную ошибку (MAE), вы должны изменить свое обучение l oop на:
from sklearn.neighbors import KNeighborsRegressor
from sklearn.metrics import mean_absolute_error
#Train Model and Predict
neigh = KNeighborsRegressor(n_neighbors = n).fit(X_train,y_train)
yhat=neigh.predict(X_test)
err[n-1] = mean_absolute_error(y_test, yhat)
и иметь в виду, что MAE - это ошибка metri c, т.е. лучше, и вы предустановили err
таким же образом, как ваш mean_acc
,