ペナルティを追加したときに問題が遅くなる理由はわかりません。それはおそらく(1)問題が何であるかに依存します。(2)コーディング方法。(3)使用している最適化方法。L1
私はあなたの質問に「暗黙の答え」があると思います:数値問題に対する最も効率的な解決策は、多くの場合テーラーメイドです。汎用アルゴリズムはまさにそれです:汎用。特定の問題がどのように提示されるか、そしてアナリストが知っているその特定の特性についての観察をもたらすことができるので、特定の問題に対する専門的な解決策はよりうまく機能する傾向があります。に関するあなたの特定の質問に対してglmnet
、それはそれを非常に効率的にするいくつかの「トリック」を持っています-それが解決しようとしている特定の問題のために!詳細については、Journal of Statistical Software ペーパーを参照してください。
- すべてのモデル(弾性ネット、リッジ回帰、およびLASSOだけでなく)の最適化では、循環座標降下を使用します。これは、この問題を解決するためのかなり良い方法です。
- 係数は、値の範囲のパスに沿って計算されます。したがって、正則化パラメーター単一の値について応答曲面上をさまよっているのではなく、前の解からの係数推定を開始点として使用して、最大値から最小値に移動します。これは、が減少するにつれて、係数推定値が小さい値から大きい値に上昇するという事実を利用しています。標準の最適化ルーチンの素朴な実装の場合のように、ランダムに初期化された開始から同じ問題を何度も解決する必要はありません。λ λλλλ
そして、それはFORTRANでコード化されています。
L-BFGSは、制限されたメモリのBFGSアルゴリズムです。一部の問題については、標準のBFGSよりも効率的になるトリックがありますが、解決する問題が特定の問題に何らかの影響を与えているかどうかは明確ではありません。L-BFGSものオプションの1つoptim
なので、追加のパッケージが必要になる理由がわかりません。
L1