本文主要是介绍最小角回归(least angle regression) 的一点记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
least angle regression (LARS)
给定线性无关按行排列的数据 X=(x1,...,xn)T ,数据label y 。不妨假设
目标是找到一个 β^ 为下问题的解:
其中 μ^=Xβ , t 越小,解越稀疏。
LARS的过程如下:
1.初始化
2.计算相关系数:
c=c(μ)=XT(y−μ)
3.计算最大相关度和对应的下标集合
C=maxj{|cj|},A={j||cj|=C}
4.计算
5.更新
其中
6.更新 β
其中 δA 是上面 ωA 通过填充0( j∉A,δA(j)=0 ),将其扩展成和数据个数一样维度。
7.如果 β 满足约束,转到4.
过程解释
最小角回归的过程,和forward stagewise(见[2])的区别在于方向和步长的更新选择上。最小角回归选择的方向,使得更新方向总是位于已选择的特征的角平分线上。
具体为什么,等看到再补充
正确性:正确性比较复杂,详见文章[1]
参考:
[1]Hastie T, Efron B. lars: Least Angle Regression, Lasso and Forward Stagewise[J]. 2013.
[2]http://blog.csdn.net/xbinworld/article/details/44284293
这篇关于最小角回归(least angle regression) 的一点记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!