#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)
форму («она содержит один образец» из сообщения об ошибке).