You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用scikit-learn LinearRegression时reg.predict报错:输入非二维数组

问题原因与解决方案

核心问题

reg.predict(1740)报错的原因是:scikit-learn的predict方法要求输入必须是二维数组(或可转换为二维数组的结构),而你传入的1740是单个标量,维度不匹配。

你训练模型时用的x_matrix是二维数组(shape为(n_samples, 1)),模型已经适配了「每个样本对应一行特征」的输入格式,所以预测时哪怕只有一个样本,也需要保持相同的二维结构。

修复方法

把单个数值包装成二维数组即可,有两种常用方式:

方式1:直接用嵌套列表传入

修改预测代码为:

reg.predict([[1740]])

这里[[1740]]是一个1行1列的二维数组,完全符合模型的输入要求。

方式2:用numpy的reshape转换

如果习惯用numpy处理,也可以这样写:

reg.predict(np.array(1740).reshape(-1, 1))

reshape(-1,1)会把单个标量转换成形状为(1,1)的二维数组,和训练时的特征维度保持一致。

验证修改后的代码

把你的预测行替换成上面任意一种写法,就能正常输出预测结果了。

内容的提问来源于stack exchange,提问作者Hoot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:45:59