截距和回归系数(Beta值)可以很高吗?

时间:2019-08-20 14:12:16

标签: machine-learning linear-regression

我有38个变量,例如氧气,温度,压力等,并且有一个任务来确定每天根据这些变量产生的总产量。当我计算回归系数和截距值时,它们似乎异常且很高(不切实际)。例如,如果发现“温度”系数为+375.456,则我无法给他们任何意义,说温度每升高1个单位,产量将增加375.456g。在我的情况下,这是不切实际的。但是,预测准确性似乎是正确的。我想知道,如何解释以下所示的巨大截距(-5341.27355)和巨大的beta值。另一个重要的一点是,我删除了多共线性的列,而且,我也没有缩放变量/对其进行归一化,因为我需要β系数具有一定的含义,以至于我可以说,温度每升高一个单位,产量就会增加10g左右。非常感谢您的投入!

modl.intercept_
Out[375]: -5341.27354961415

modl.coef_
Out[376]: 
array([ 1.38096017e+00, -7.62388829e+00,  5.64611255e+00,  2.26124164e-01,
        4.21908571e-01,  4.50695302e-01, -8.15167717e-01,  1.82390184e+00,
       -3.32849969e+02,  3.31942553e+02,  3.58830763e+02, -2.05076898e-01,
       -3.06404757e+02,  7.86012402e+00,  3.21339318e+02, -7.00817205e-01,
       -1.09676321e+04,  1.91481734e+00,  6.02929848e+01,  8.33731416e+00,
       -6.23433431e+01, -1.88442804e+00,  6.86526274e+00, -6.76103795e+01,
       -1.11406021e+02,  2.48270706e+02,  2.94836048e+01,  1.00279016e+02,
        1.42906659e-02, -2.13019683e-03, -6.71427100e+02, -2.03158515e+02,
        9.32094007e-03,  5.56457014e+01, -2.91724945e+00,  4.78691176e-01,
        8.78121854e+00, -4.93696073e+00])

2 个答案:

答案 0 :(得分:2)

所有这些变量都不太可能线性相关,因此我建议您研究一下简单的非线性回归技术,例如决策树或内核岭回归。但是,这些解释起来比较困难。

回到您的问题,这些较高的权重很可能是由于变量之间的相关性很高,或者您只是没有太多的训练数据。 如果您不使用线性回归使用Lasso回归,则解决方案会偏离高回归系数,并且拟合度也可能会提高。

scikit-learn中如何执行此操作的小示例,包括对正则化超参数的交叉验证:

from sklearn.linear_model LassoCV

# Make up some data
n_samples = 100
n_features = 5
X = np.random.random((n_samples, n_features))
# Make y linear dependent on the features
y = np.sum(np.random.random((1,n_features)) * X, axis=1)

model = LassoCV(cv=5, n_alphas=100, fit_intercept=True)
model.fit(X,y)
print(model.intercept_)

答案 1 :(得分:0)

如果您具有线性回归,则公式如下所示(y =目标,x =特征输入):

y= x1*b1 +x2*b2 + x3*b3 + x4*b4...+ c

其中b1,b2,b3,b4 ...是您的modl.coef_。正如您已经意识到,更大的数字之一是3.319+02 = 331,截距也很大,为-5431。 正如您已经提到的,如果系数特征以1单位变化并且所有其他特征是恒定的,则系数变量表示目标变量的变化量。

因此,对于您的解释,绝对系数越高,分析的影响越大。但是需要注意的是,该模型使用了很多高系数,这意味着您的模型不仅依赖于一个变量