回归算法中特征线性相关会怎样

Posted bitcarmanlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回归算法中特征线性相关会怎样相关的知识,希望对你有一定的参考价值。

1.什么是线性相关

线性相关的概念,大家在线性代数里面都有学过。如果把问题更加简化一点,假设两个单变量 x 1 , x 2 x_1, x_2 x1,x2线性相关,那么可以写成如下形式
x 1 = a ⋅ x 2 + b x_1 = a \\cdot x_2 + b x1=ax2+b

2.特征的共线性

一般在线性回归模型中,我们都会假定,各个特征之间没有很强的线性相关。而如果数据的特征之间存在较强的线性相关,一般就认为数据存在共线性的问题。

3.共线性影响回归算法的方差

数据如果存在共线性,回归算法特征系数的方差会扩大。因为如果存在高度线性相关的特征, X T X X^TX XTX矩阵会不可逆,或者说接近奇异矩阵。该矩阵对角线上的元素会很大,参数估计的标准误差也会较大,参数估计值的精度较低。
而在现实世界中,由于各种各种的原因,比如数据采样数据打点带来的问题,比如数据预处理环节带来的问题,都会引入噪声数据。而由于共线性的存在,一小部分噪声数据,都会对最终模型回归系数产生很大影响,增大模型回归系数的方差。

4.影响模型数值解的稳定

如果模型能够最终收敛,特征共线性是不会影响模型的预测结果,最终也会收敛。但是如我们前面所有,在实际中,会或多或少引入各种噪声,这样模型的数值解会趋向不稳定,其实与模型回归系数方差增大是同一个意思。

5.影响模型的可解释性

前面提到,如果模型最终能够收敛,特征共线性是不会影响模型的预测结果的。但是在某些领域,比如金融领域,就特别强调模型的可解释性,黑盒模型业务部门是不敢使用的,必须要对模型给出个合理的解释,而且解释内容得与业务部门的先验知识基本一致才可能被采纳。因为特征共线性有可能增大回归系数的方差,让数值解变得不稳定,解释的难度就变得大很多,甚至出现错误的解释。

6.实例说明

参考文献1里有个例子,能比较清楚的说明问题,例子如下。

假设原始的线性回归公式为:

y = w 1 ∗ x 1 + w 2 ∗ x 2 + w 3 ∗ x 3 y=w1*x1+w2*x2+w3*x3 y=w1x1+w2x2+w3x3

训练完毕的线性回归公式为:

y = 5 x 1 + 7 x 2 + 10 x 3 y=5x1+7x2+10x3 y=5x1+7x2+10x3

此时加入一个新特征x4,假设x4和x3高度相关,x4=2x3,则

y = w 1 ∗ x 1 + w 2 ∗ x 2 + w 3 ∗ x 3 + w 4 ∗ x 4 = w 1 ∗ x 1 + w 2 ∗ x 2 + ( w 3 + 2 w 4 ) ∗ x 3 y=w1*x1+w2*x2+w3*x3+w4*x4=w1*x1+w2*x2+(w3+2w4)*x3 y=w1x1+w2x2+w3x3+w4x4=w1x1+w2x2+(w3+2w4)x3

因为我们之前拟合出来的最优的回归方程为:

y = 5 x 1 + 7 x 2 + 10 x 3 y=5x1+7x2+10x3 y=5x1+7x2+10x3

显然w3+2w4可以合并成一个新的权重稀疏 w5,则

y = w 1 ∗ x 1 + w 2 ∗ x 2 + w 5 ∗ x 3 y=w1*x1+w2*x2+w5*x3 y=w1x1+w2x2+w5x3,显然:

y = w 1 ∗ x 1 + w 2 ∗ x 2 + w 3 ∗ x 3 y=w1*x1+w2*x2+w3*x3 y=w1x1+w2x2+w3x3 y = w 1 ∗ x 1 + w 2 ∗ x 2 + w 5 ∗ x 3 y=w1*x1+w2*x2+w5*x3 y=w1x1+w2x2+w5x3是等价的。。。。

那么最终最优的模型应该也是 y = 5 x 1 + 7 x 2 + 10 x 3 y=5x1+7x2+10x3 y=5x1+7x2+10x3

但是考虑到引入了x4,所以w4和w3的权重是分开计算出来的,这就导致了

w 5 = 10 = w 3 + 2 w 4 w5=10=w3+2w4 w5=10=w3+2w4,显然这个方程有无穷多的解,比如w3=4,w4=3,或者w4=-1,w3=12等,因此导致了模型系数估计的不稳定并且可能会出现负系数的问题。

参考文献

1.https://zhuanlan.zhihu.com/p/88025370

以上是关于回归算法中特征线性相关会怎样的主要内容,如果未能解决你的问题,请参考以下文章

系统学习机器学习之特征工程--多重共线性

系统学习机器学习之特征工程--多重共线性

来自分类或回归算法模型的相关系数或特征重要性

线性回归和线性回归方程是怎样的呢?

Python中某些特征的正系数线性回归

线性回归算法