Вы вводите data
(со всеми 9 начальными функциями) в модель, которая была обучена с помощью X
(8 функций, поскольку Outcome
был удален для создания y
), следовательно, возникает ошибка.
Что вам нужно сделать:
- Получить прогнозы, используя
X
вместо data
- Добавить прогнозы к исходному
data
установить
то есть:
y_pred2 = model.predict(X)
data['prediction'] = y_pred2
Имейте в виду, что это означает, что ваша переменная prediction
будет получена из обоих данных, которые уже использовались для подгонки модели (т.е. часть X_train
) а также из данных, которые модель не видит во время обучения (часть X_test
). Не совсем уверен, какова ваша конечная цель (и вопрос не в этом), но это довольно необычная ситуация с точки зрения машинного обучения.
Если у вас есть новый набор данных data_new
для предсказать результат, вы делаете это аналогично; всегда предполагая, что X_new
имеет те же функции, что и X
(т.е. снова удаляет столбец Outcome
, как вы сделали с X
):
y_new = model.predict(X_new)
data_new['prediction'] = y_new