使用Linear Regression预测值时遇维度错误,如何重塑输入形状?
解决Linear Regression预测时的维度错误问题
当执行reg.predict(60)出现维度错误,核心原因是scikit-learn的线性回归模型要求输入必须是二维数组,而60是单个标量(一维值),不符合模型的输入格式要求。你可以通过以下几种方式重塑输入形状:
方式一:使用numpy的
reshape方法转换
先导入numpy(未导入的话需先执行导入),将输入转为二维数组:import numpy as np reg.predict(np.array(60).reshape(1, -1))reshape(1, -1)会将数据转换为1行、列数自动匹配的二维结构,最终得到[[60]],满足模型输入要求。方式二:直接传入嵌套列表
无需依赖numpy,直接把数值放在二维列表中:reg.predict([[60]])这种写法更简洁,本质是构造了包含单个样本的二维输入数据。
方式三:批量预测多个值的处理
如果需要预测多个数值(如60、70、80),同样要保持二维结构:# 直接用列表 reg.predict([[60], [70], [80]]) # 或用numpy reg.predict(np.array([60, 70, 80]).reshape(-1, 1))
关键提醒
scikit-learn的监督学习模型,无论训练还是预测,输入特征都要求是二维结构(行对应样本数量,列对应特征数量),哪怕只有单个样本,也必须维持这种结构,不能直接传入单个数值。
内容的提问来源于stack exchange,提问作者Random guy in internet with no
相关产品推荐
相关产品推荐

