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

如何用Python的statsmodels线性回归模型预测单个新数据点?

解决statsmodels线性回归单个数据点预测的维度错误问题

错误原因

你的模型训练时,sm.add_constant(x)生成了2列的特征矩阵(第一列是常数项1,第二列是原始x值),对应模型的2个参数(截距和x的系数)。但你传入单个标量newX=2.5给sm.add_constant时,生成的特征矩阵形状为(1,1),和模型参数(2,)的维度不匹配,导致矩阵点乘时出错。

正确实现方法

方法1:将单个数据点包装为二维结构后添加常数项

把newX转换成二维列表/数组,这样sm.add_constant会正确添加常数项列,生成符合要求的(1,2)形状特征矩阵:

newX = [[2.5]]  # 二维列表,形状(1,1)
newX_const = sm.add_constant(newX)
prediction = model.predict(newX_const)
print(prediction)  # 输出: [3.5]

方法2:手动构造包含常数项的特征矩阵

直接构造包含常数项(1)和特征值的二维数组,跳过sm.add_constant:

prediction = model.predict([[1, 2.5]])
print(prediction)  # 输出: [3.5]

验证结果

你的训练数据拟合出的回归方程是y = 1 + 1*x,所以x=2.5时预测值为3.5,两种方法都能得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:05:30