この辺りを見る限りだと、同じ変数が足される場合は排除していない(恐らく1回基底に加えると相関がほとんどなくなるからだと思うが)。\\$$この時の最小値は正の値を取るものの中から選ばれる。やってること自体は予測値と相関があるものを1つずつ基底に加えていくだけというもの。シンプルではあるが、なかなか協力。実装とりあえず式はざっくりと追えたので、sklearnで使ってみる。scikit-learnここのコードをアレンジしていく。どの様に学習が進んでいったかが分かるlars_pathを使ってみる。必要モジュールのインポート。データセットダウンロード用データセットのロード。diabetes.target項目は以下の通り。血清測定値6これらの変数が全て正規化された状態で入っているでLARSを使った正則化を施してみる。LARSを使った最適化の結果が出力される。coefsに出力されるのは更新回数ごとの係数の値の変化で、1つ1つの行がそれぞれの特徴量に対応する係数となっている。])activeの中身は以下の通りで、それぞれのイテレーションで相関係数の値が最大となった係数のインデックスを表示している。次に、プロットのための前準備に入る。それぞれのイテレーションにおいて、係数の絶対値の足し合わせを求める。最後のイテレーションにおける係数の足し合わせとの比率をとる。それぞれの係数がどの様に変化していったかが示される。縦軸が係数の値であり、横軸が各イテレーションにおける合計値の比率。LARSLARSも使ってみるが、他のscikit-learnのモデルと同じ様に使える。lars.predict(test_X)スコアはあまりよくなかった。係数の値のプロットをする。coefs')plt.show()実行結果LassoLarsこの際なので、Larsを使ったLasso回帰も試してみる。Regressionの中身についてまとめた。やってること自体は、特徴量の値と暫定での誤差との相関が最も大きい特徴量を1つずつ加えていくというシンプルなものだが、定式化すると意外と長くなってしまった。いったものも数行で使えてしまうscikit-klearnは本当に恐ろしい子。ubuntu著者プロフィール。