问题描述
我的训练/测试集中有一个额外的列用于特征/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