首页 > 解决方案 > Python 线性回归预测错误 - 数组问题

问题描述

当我尝试对我的线性回归使用 .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)

标签: pythonarrayslinear-regression

解决方案


输入predict()是二维数组,您正在传递整数值,这就是您收到错误的原因。您需要将 80 作为二维列表传递[[80]]

reg.predict([[80]])

推荐阅读