本文内容主要基于炼数成金机器学习课程,并且LAR部分参考了文章Lasso算法学习。
解决多重共线性和变量选择的两种方法——岭回归&Lasso。
1 多元线性回归的最小二乘解
Q(β)是残差的平方和的向量化表示,求偏导后得到的解为最小二乘估计; 6.22式中矩阵的-1表示的是广义求逆(矩阵只有n*n才能求逆,广义求逆可以针对所有的矩阵)。
多元线性回归的几何意义:求最小的y-β1X1-β2X2……其实就是求向量y到平面β1X1+β2X2……的最短距离(垂直距离)。
出现以下两种情况时影响求解:
2 岭回归
加入了一个扰动kI。
3.41的最后一项称为惩罚函数,它和3.42描述的问题是一样的。
岭回归的几何意义:
RSS表示的是残差平方和。约束项βi的平方和≤t在集合中表示为一个圆柱(二维情况时),它与残差的交点就是(β1, β2)。如下图所示:
画在一个切面图上:
岭回归性质:
(最小二乘法是无偏估计)
(岭回归比最小二乘法更能接近真值,虽然它平均上有偏差)
岭迹图可以用于判断多重共线性。
3 LASSO
(左上为岭回归,右下为LASSO)
(左为LASSO,右为岭回归)
岭估计系数通常不会为0——椭圆不断扩大,会和圆相切交一点(即为岭估计系数)。这一点在圆周上的位置通常不会取到0(椭圆碰到坐标轴上的圆周上的点的概率很低)。
对比岭回归,LASSO的约束条件用的是绝对值,在几何上解释为一个菱形。随着椭圆增大,椭圆与菱形突出的顶点相交的概率很大(即回归系数等于0)。
(弹性网目前处理的效果最好)
4 LASSO的计算方法
最小角回归算法
这里LSE指的是Least Squares Error。
算法过程:
在介绍LAR之前,先要说明一下有关相关系数的知识补:
r表示X,Y的相关性,r越高,X,Y就越相关,若X,Y是二维向量,就说明X,Y两个向量越接近(可以被互相表示)
通常情况下通过以下取值范围判断变量的。
相关系数 相关强度:
0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关
如果这里我们假设Xi,Yi与,计算的结果为二维单位向量,再反观r的计算公式:
该手稿转自http://f.dataguru.cn/thread-448966-1-1.html(炼数成金),可以发现r最终就是X,Y标准化后的夹角余弦值。
所以夹角越小,cosθ就越大,越接近1,即表示相关系数越大。(也可以解释相关系数的取值范围[-1,1])
解释完相关系数,就让我们正式进入LAR的学习。
1)r表示的是向量Y和Xi之间的残差向量
2)找到和Y向量夹角最小的向量Xi,记最初夹角为θ0(图中即角1)。Y与Xi的局部最小二乘解(即为Y到Xi的距离,图中的垂直虚线)。从原点出发,沿着Xi,向这个局部最小二乘解移动。随着移动,残差向量r会趋于图中的垂直虚线;最初的夹角1也渐渐变为夹角2,并不断趋于90°;Xi与r之间的相关系数不断减小,趋于0。
3)在这个变化的过程中,总有某一时刻,另一个变量Xj与r之间的相关系数,与Xi与r之间的相关系数一样大。这个时候我们就把Xj加入。Xj加入后,前进的方向要进行修正(不在沿着Xi了),修正为Xi与Xj夹角的角平分线方向(图中酒红色线,需先将Xj平移才能得到)。
4)重复3步骤,直到所有X分量都被包含。最终找到残差向量r与所有X之间相关系数都为0的点。
解释图: