sklearn.LinearRegression拟合后X=5预测结果异常原因咨询
问题原因解答
预测值并非大数
你输出的-1.77635684e-15是科学计数法表示的浮点数,e-15代表10的-15次方,实际数值约为-0.00000000000000178,无限接近0,完全不是你以为的大负数。
拟合结果验证
我们可以手动计算当前样本的线性回归参数:
- 特征X的均值为2.5,标签y的均值为4.5
- 计算得斜率为-1.8,截距为9,拟合公式为
y = -1.8x + 9 - 代入x=5计算得到理论预测值为:
-1.8*5 +9 = 0
你也可以在代码中打印拟合参数验证:
print(reg.coef_, reg.intercept_) # 输出为 [[-1.8]] [9.],和手动计算结果完全一致
极小误差来源
这个接近0的非零值是计算机浮点数运算的正常精度损失:浮点数在二进制存储、运算过程中会产生微小的截断误差,尤其是涉及减法、除法操作时更容易出现这类无限接近真实值的微小偏差,不属于预测异常。
如果需要正常展示结果,对输出保留合理小数位即可:
print("Next will mine in", round(float(reg.predict([[5]])), 10)) # 输出为 Next will mine in 0.0
内容的提问来源于stack exchange,提问作者Vik
相关产品推荐
相关产品推荐

