Lasso-Lars その4 larsアルゴリズムのlasso modification | ぽんのブログ

ぽんのブログ

自分用の備忘録ブログです。書いてある内容、とくにソースは、後で自分で要点が分かるよう、かなり簡略化してます(というか、いい加減)。あまり信用しないように(汗

こちらに書いたようにlasso解は、βj と残差 v.s. xj との相関 cj の符号が

式(1)


と等しくなる事が課せられます。しかし Lars アルゴリズムそのままではこの条件は必ずしも満たされません。
例えば今 k 回目のステップの解 が式(1)を満たす lasso 解であるとします。
次の k+1 回目のステップで、新たな等角方向 u に推定値 μ を動かします。



これにより βj は

式(2)


と変更されます。ここで



です。

式(2)で重要なのは、γ=0 のとき



で lasso 解、つまり式(1)を満たすという事です。式(2)から

式(3)


の時 βj =0 となるので

1. γj < 0 ならγj < γ で、
2. 0 < γj なら γ < γj で βj は符号が変わらないので式(1)を満たす


という訳です。

今は γ > 0 としているので 2.の場合のみを考えれば、前回の記事のEfron論文の式(2.13)で求められた



なら βj の符号が変わるので式(1)が満たされず、lars の解ではあっても lasso 解では無くなります。

このような状況が最初にあらわれるのは、γの値が



になったときです。この時 なら最初に βk が0になり lasso解で無くなります。

こうした事を回避するため larsアルゴリズムに以下のような修正を施します。

となったら とする、つまり βk = 0 として k をアクティブセット A (βが0でない指標の集合)から外し、改めて xk を抜いて等角ベクトルを求めなおす。

以上の修正を施す事で lasso 解を larsアルゴリズムで求められます。