numpy 期望的是二维数组,但得到的是一维数组:我该如何解决它?

vbopmzt1  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(133)

我一直在尝试使用我清理过的数据集开发一个线性回归模型。以下是我的数据集:https://docs.google.com/spreadsheets/d/1G7URct9yPAxEETLrb_F1McN-bgKp_r8cykmCOmojhT0/edit?usp=sharing
我已经使用标签编码器处理了数据,并只需使用TRAIN_TEST_SPLIT进行拆分

cols = ['nama_pasar','komoditas']

for col in cols:
  df_test[col] = LE.fit_transform(df_test[col])
  print(LE.classes_)
X = df_test[['tanggal','nama_pasar','komoditas']]
y = df_test[['harga']]
from sklearn.model_selection import train_test_split
X_train, y_train, X_test, y_test = train_test_split(X, y, test_size = 0.5)

当我尝试拟合数据时,没有出现任何问题。

LR.fit(X_train, y_train)

但是当我尝试使用我的线性回归模型中的预测时,它总是显示这个错误

LR.predict([1, 10, 4])
ValueError: Expected 2D array, got 1D array instead:
array=[ 1 10  4].
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.

我尝试将测试大小的数量更改为0.2,但它显示的错误与第一个不同。

ValueError: Found input variables with inconsistent numbers of samples: [37936, 9484]

我该怎么解决这个问题?
我还在学习数据科学的基础知识,如果能给我解释一下,我将不胜感激
谢谢你

odopli94

odopli941#

您的x2d array,并且经过了这样的训练,因此当您想要预测时,您需要通过2d array,尝试下面的方法。

LR.predict([[1, 10, 4]])
332nm8kg

332nm8kg2#

至于你的第二个问题(和你的评论):你搞错了列车测试拆分的顺序。

X_train, y_train, X_test, y_test = train_test_split(X, y, test_size = 0.2)

它必须正确无误:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)

尝试并检查数组/ Dataframe 的维度以进行健全性检查始终是一种良好的做法。

相关问题