如何修复 ValueError: Expected 2D array, got 1D array instead?

from sklearn.linear_model import LinearRegressionX=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

回答:

问题出在你声明 X 和 Y 的方式上。

如果你打印 X 或 Y 的形状

X.shape

会得到类似这样的结果

(49,) 

这表示有49行,但没有列。

为了避免这个问题,你可以像这样修改你的代码

X=data[['reck']]y=data[['price']]

当你打印形状时

X.shape

得到的值会是这样的

(49,1)

当你将这些值传递给你的模型时,模型将不会抛出任何错误。

附注:我也是新贡献者,我尽我所能地解释了这个问题,但可能还有更合理的解释。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注