1

linear_model.lars_pathscikit-learn で (model = 'lasso') を実行したときのなげなわパスの動作について混乱しています。

重み (係数) がアクティブ (0 からの差分) になると、LARS アルゴリズムの今後のすべてのステップでアクティブなままにしておく必要があると考えました。

データに対してアルゴリズムを実行すると、係数がアクティブになり、後でゼロになる (アクティブ セットから削除される) 場合があることに気付きました。これは LARS アルゴリズムの正しい動作ですか、それとも scikit-learn の実装にバグがあるのでしょうか?

4

1 に答える 1

1

これは、LARSのL1正則化バージョン(およびL1正則化回帰は一般に「投げ縄」として知られています)の正しい動作です。

L1バージョンでは、LARSパスに沿ったステップにより、データマトリックスの列と残差の相関の符号が、対応する回帰係数(eg sgn(x_i^\top(y-X\beta)) != sgn(\beta_i))の符号と異なる場合、この列/係数は次のようになります。アクティブパスから削除されました。(元の説明は、Efron et al。による2003年の論文「LeastAngleRegression」にあります。)

対照的に、アクティブセットは、LARSのL0正則化バージョンでは反復ごとに大きくなります。

于 2013-02-08T02:27:26.917 に答える