Функция прогнозирования модели линейной регрессии не работает

У меня есть этот код. В основном это работает до тех пор, пока я не попытаюсь использовать predict(x-value), чтобы получить ответ y-value.

Код ниже.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

df = pd.read_csv('linear_data.csv')
x = df.iloc[:,:-1].values
y = df.iloc[:,1:].values
x_train, x_test, y_train, y_test= train_test_split(x,y,test_size=1/3,random_state=0)
reg = LinearRegression()
reg.fit(x_train, y_train)

y_predict = reg.predict(x_test)

y_predict_res = reg.predict(11) --> #This is the error! 11 is the number of years to predict the salary
print(y_predict_res)

Ошибка, которую я получаю:

ValueError: ожидался двумерный массив, вместо него получен скалярный массив: array=11. Измените форму данных либо с помощью array.reshape(-1, 1), если ваши данные содержат одну функцию, либо с помощью array.reshape(1, -1), если они содержат один образец.

Сообщение об ошибке мне не очень помогает, так как я не понимаю, зачем мне его менять.


person user10555585    schedule 12.12.2019    source источник
comment
Попробуйте использовать reg.predict([[11]])   -  person Ofer Sadan    schedule 12.12.2019
comment
Почему это работает? @OferSadan   -  person user10555585    schedule 12.12.2019
comment
Отвечает ли это на ваш вопрос? Ошибка в скрипте Python Ожидаемый 2D-массив, получен 1D вместо массива:? см. мой ответ там   -  person Ofer Sadan    schedule 12.12.2019
comment
@OferSadan Так и было. Это сработало.   -  person user10555585    schedule 12.12.2019


Ответы (1)


Обратите внимание на здесь что ожидаемый параметр X является подобным массиву или разреженной матрице, форме (n_samples, n_features), что означает, что он не может быть отдельным числом. Число/значение должно быть частью массива.

person Vlad    schedule 12.12.2019