LARSと投げ縄の座標降下


13

L1正規化線形回帰のあてはめにLARS [1]を使用する場合と座標降下を使用する場合の長所と短所は何ですか?

私は主にパフォーマンスの側面に興味があります(私の問題はN数十万とp20未満にある傾向があります)。しかし、他の洞察も歓迎されます。

編集:私は質問を投稿したので、chlは親切にフリードマンらによる論文[2]を指摘しました。そこでは、座標降下は他の方法よりもかなり速いことが示されています。その場合、実務家として座標降下を支持するLARSを単に忘れるべきですか?

[1]エフロン、ブラッドリー。ヘイスティー、トレバー; ジョンストーン、イアンおよびティブシラーニ、ロバート(2004)。「最小角度回帰」。統計32(2):pp。407–499。
[2] Jerome H. Friedman、Trevor Hastie、Rob Tibshirani、「座標降下による一般化線形モデルの正規化パス」、Journal of Statistics Software、Vol。33、1号、2010年2月。

回答:


13

scikit-learnでは、座標降下によるLassoの実装はLARSの実装よりも高速になる傾向がありますが、小さなp(あなたの場合など)の場合、それらはおおよそ同等です(LARSは、マスターリポジトリ)。さらに、座標降下により、エラスティックネット正則化問題を効率的に実装できます。これはLARSの場合ではありません(Lasso、別名L1ペナルティ問題のみを解決します)。

Elastic Netのペナルティ化は、ラッソの優れたスパース性誘導機能(教師付き機能選択)を維持しながら、ラッソ(リッジ回帰の解に近い)よりも優れた一般化をもたらす傾向があります。

大きなN(および大きなp、スパースまたはそうでない)の場合、確率的勾配降下(L1またはエラスティックネットペナルティ)を試すこともできます(scikit-learnでも実装されます)。

編集:ここではLassoLARSと scikit-learnの座標降下実装比較するいくつかのベンチマークがあります


(+1)@ogriselどうもありがとう!私はおそらく自分でこれをコーディングしなければならないので(Javaで必要であり、オープンソースのJava実装はまだ見ていません)、どのアルゴリズムを実装するほうが簡単だと思いますか?
NPE

1
座標降下とSGDはどちらも簡単に実装できます(SGDの紹介についてはLeon BottouのWebページを参照してください)。LARSを正しく処理するのはおそらく難しいでしょう。
ogrisel

素晴らしい、ありがとう!LéonBottouのサイトをチェックします。
NPE

@ogrisel(+1)よろしくお願いします。
chl

2
@aix scikit-learnの現在の実装に関するベンチマークを追加するために、回答を編集しました。また、独自の座標降下を実装する前に、Javaバージョンのliblinearをチェックアウトしてください(L1とL2の両方を同時に使用することはできませんが)。
-ogrisel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.