Как предсказать значения с помощью sklearn KNN

#python #scikit-learn

Вопрос:

Я не могу делать прогнозы с помощью модели sklearn KNN.

 import numpy as np
import sklearn.datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

data = sklearn.datasets.load_digits()
X_train, X_test, y_train, y_test = train_test_split(data['data'], data['target'])
model = KNeighborsClassifier().fit(X_train, y_train)
print(model.predict(X_test[0]))
 

он возвращает ошибку

 Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
 

и когда я изменю его с помощью

 print(model.predict(X_test[0].reshape(-1, 1))
 

он по-прежнему возвращает ошибку

 ValueError: query data dimension must match training data dimension
 

Комментарии:

1. Можете ли вы распечатать размеры X_test[0].reshape(-1, 1) и проверить, совпадают ли они с данными обучения X_train ? Количество столбцов должно быть равным.

Ответ №1:

Вы хотите предсказать для первой тестовой строки, поэтому вместо этого вам следует изменить (1, -1) форму («она содержит один образец» из сообщения об ошибке).