Python Ошибка прогноза линейной регрессии - проблема с массивом - PullRequest
0 голосов
/ 24 апреля 2020

Когда я пытаюсь использовать .predict для моей линейной регрессии, я получаю следующую ошибку:

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

Я не совсем понимаю функция изменения формы и зачем она нужна. Может кто-нибудь объяснить мне, что это делает, и как применить его, чтобы получить прогноз для моей модели?

import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression

x = np.array([95,85,80,70,60])
y = np.array([85,95,70,65,70])
x = x.reshape(-1,1)
y = y.reshape(-1,1)
plt.scatter(x,y)
plt.show()

reg = LinearRegression()
reg.fit(x,y)

reg.predict(80)

1 Ответ

0 голосов
/ 24 апреля 2020

вход predict() - это 2d массив, которому вы передаете целочисленное значение, поэтому вы получаете ошибку. Вам нужно передать 80 как 2-й список [[80]]

reg.predict([[80]])
...