Scikit-learn:在 X0 系数和截距之间混淆 示例代码:

问题描述

我的训练/测试集中有一个额外的列用于特征/X,它只是 1,这应该是 Xo 的系数,它从来没有出现在数据集中。方程中提到的是θo;

$$Y=θo + θ1X1$$

现在来到截距,作为模型参数,我一直知道这是 θ0。所以我对第一个系数的表示法有点困惑。 我在

中的0之间感到困惑

[0. 144.345] 和 [55547.458] 来自代码

    #model coefficient
    print(lin_reg.coef_)
>>>[[0.    144.345]]
    #model intercept
    print(lin_reg.intercept_)
>>>[55547.458]

提前致谢

解决方法

.coef_ 返回模型的参数值/权重值,权重数等于数据集中的特征数。从您在答案中提供的输出看来,您的数据集中必须有 2 个特征,因此您的模型中有 2 个权重,一个值为 0.,另一个值为 144.345 .

另一方面,.intercept_ 返回模型的 Y 截距/偏差值。您将其称为 θo。其值为 55547.458

示例代码:

import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1,1],[1,2],[2,3]])
y = np.dot(X,np.array([1,2])) + 3

reg = LinearRegression().fit(X,y)

print(reg.coef_)
# Output: [1. 2.]
print(reg.intercept_)
# Output: 3.00

# y = θo + θ1 * x_0 + θ2 * x_1 => 3.00 + 1 * x_0 + 2 * x_1