from sklearn.linear_model import LinearRegression
X=data['reck']
y=data['price']
X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=0)
linreg = LinearRegression().fit(X, y)
我为线性回归问题编写了代码,但是当我想查看结果时出现此错误:
ValueError: Expected 2D array, got 1D array instead:
array=[122360. 122365. 49800. ... 2696. 2357. nan].
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.
我的模型只有一维。它试图找到汽车的接收公里数与他们所获得的服务价格之间的关系。
chasis number reck price
0 999.JACJ5AT.SPC00 122360.0 330000
1 999.JACJ5AT.SPC00 122365.0 385000
2 999.JACS5AT.SPC00 49800.0 753500
3 999.JACS5AT.SPC00 49805.0 1732500
4 999.JACS5AT.SPC00 49908.0 1375000
答案 0 :(得分:0)
将数组reshape
二维化怎么样? (请注意,错误消息也很冗长,无法提出建议!)
from sklearn.linear_model import LinearRegression
X=data['reck'].reshape(-1, 1)
y=data['price']
X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=0)
linreg = LinearRegression().fit(X, y)
答案 1 :(得分:0)
问题是您声明X和Y的方式
如果打印X或Y形状
X.shape
它会变成这样
(49,)
说49行,但列为空
为避免这种情况,您可以像这样编辑代码
X=data[['reck']]
y=data[['price']]
打印形状时
X.shape
值会变成这样
(49,1)
将这些值传递给模型时,模型不会引发任何错误。
PS:我也是新的贡献者,我尽力解释了一下,但是对此可能会有更合乎逻辑的解释