如何解决线性回归预测时的‘EXPECTED 2D ARRAY’错误?
解决LinearRegression.predict()的ValueError问题
错误原因
scikit-learn的LinearRegression模型训练时接收的特征数据是二维数组格式(比如你代码里的df[['area']]是DataFrame,本质是二维结构),因此predict()方法要求输入必须是二维数组,直接传入单个数值3300会生成一维数组,触发ValueError。
解决方案
以下三种方法都可以解决这个问题:
方法一:用双层方括号构造二维列表
直接将输入值包裹在双层方括号中,生成符合要求的二维结构:reg.predict([[3300]])方法二:用numpy的reshape转换维度
将单个数值转为numpy数组后,通过reshape(1, -1)把一维数组转为1行1列的二维数组:import numpy as np reg.predict(np.array(3300).reshape(1, -1))方法三:构造DataFrame传入
保持和训练数据一致的DataFrame格式,确保输入结构完全匹配:reg.predict(pd.DataFrame({'area': [3300]}))
内容的提问来源于stack exchange,提问作者Jamilu
相关产品推荐
相关产品推荐

