- Published on
LARSアルゴリズムでLasso解を求める
- Authors
- Name
- Minato Sato
- @minatosatou
はじめに
LARSを説明した記事のつづきです。
LARSアルゴリズムとLasso解
をLasso解とすると、非ゼロ要素 の符号と残差との相関 との符号は一致している必要がある。
しかし、LARSアルゴリズムは を必ず満たすとは言えない。 とする( 等については前回を参照)と は
で更新されるので、 の符号が変わるのは
のタイミングで、最初にそのような変化が起こるのは
が よりも小さくなるとき。このとき、 を満たせなくなるのでLARSアルゴリズムの解であってもLasso解ではなくなる。
修正版LARS
もし、なら、予測値ベクトル等の更新に を使い、
次のステップで説明変数 を から除いてequiangular vectorを計算、各値を更新すれば良い。こうすることでLasso解を求めることがでる。
Pythonによるフルスクラッチ実装
実装に関しては前回の実装を少しだけ変更すれば良い。Github (minatosato/Lasso)にアップロードしたので参考にしてください。