Lasso的优化条件
lasso的目标函数是
使用坐标下降法求解:
w总共有D维,每次取1维出来,让其他D-1维不变
下面对进行求导
令, 则上式
中的
表示的是利用D-j维特征得到的预测的残差,
而即表示的是第j维特征与残差的相关性
上面式子带入正则项,目标函数的子梯度
根据的不同,
有三种情况
soft 即软阈值(Soft Thresholding)的表达式如下
上式中 sign(x)是符号函数,即当x>0时为1,当x0时为-1 x是变量,T是阈值(非负值),符号表示当(|x|-T)0时则等于|x|-T,当(|x|-T)<0时则等于0。 那么分三种情况来讨论: 第一种情况是x>T>0,则sign(x)=1,|x|=x,(|x|-T)一定大于0,
=|x|-T,所以soft (x,T)=x-T; 第二种情况是x<-T<0,则sign(x)=-1,|x|=-x,(|x|-T)也一定大于0,
=|x|-T,所以soft (x,T)=-1*(-x-T)= x+λ; 第三种情况是|x|<T,此时(|x|-T)一定小于0,则
=0,所以soft (x,T)=0
lasso求解伪代码
- 预计算
- 初始化参数w(全0或随机)
- 循环直到收敛: for j=1,2,……D
- 计算
- 计算
- 计算
- 选择变化幅度最大的维度进行更新
坐标轴下降法,不需要计算目标函数的导数,在稀疏矩阵上的计算速度 非常快,同时也是Lasso回归最快的解法
