为何sklearn LinearRegression.coef_不包含截距?如何获取截距参数?
问题解答
为什么reg.coef_不包含截距β?
在sklearn的LinearRegression中,模型参数被拆分为两部分独立存储:
coef_属性仅保存特征对应的系数(即公式里的α),单特征线性回归场景下,它是包含单个值的数组;- 截距β单独存放在
intercept_属性中,因为截距属于模型的偏移量,不属于任何输入特征的权重范畴。
另外你的代码存在关键遗漏:调用predict或访问参数前,必须先执行reg.fit(X, Y)完成模型训练,否则无法得到正确参数值。
如何直接获取β参数?
不需要通过predict([[0]]),直接访问模型的intercept_属性即可。修正后的完整代码如下:
from sklearn.linear_model import LinearRegression reg = LinearRegression() X = [[0], [1], [3]] Y = [0, 1, 2.5] reg.fit(X, Y) # 必须先完成模型训练 print("斜率α:", reg.coef_[0]) # 输出 0.82142857 print("截距β:", reg.intercept_) # 输出 0.07142857142857142
内容的提问来源于stack exchange,提问作者Xiaoyong Guo
相关产品推荐
相关产品推荐

