ぽんのブログ -25ページ目

ぽんのブログ

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

とりあえず octave で動くLARSのスクリプトでもないかと見ていてこちらのsamさんのページを発見。

このページの最後の .m ファイル全てを DL、リンクにもあるこちらから diabetes.data を DL して octave を起動。

octave 上で以下のようにすればsamさんのページの図が書かれます。

Data = dlmread ("diabetes.data", '\t', 1, 0);
least_angle_regression (Data);

必須では無いですが epstool、pstoedit、transfig などをインストールすればエラーが出なくなると思います。

但しsamさんの lars.m には間違いがある?

lars.m の109行目

        d_hat = diag(sign_A' * w_A);

これは前のページの βj が 0 になる γ を求めるのに必要な d を計算する部分なのですが
これでは d_hat がスカラーになってしまうような気がします。



なので

       d_hat = diag(sign_A) * w_A;

もしくは

       d_hat = sign_A .* w_A;

とすれば

lasso

のような結果になりました。
こちらのほうがよく見る diabetes データの結果に似ている気がします。

まぁ、Efron 論文を読み進める上で作った、という事なのであまり信用しない方がいいのかもしれません(汗
でも読みやすいです。