これは、回帰による正則化に関する初心者向けの質問です。 Elastic NetとLasso Regressionに関するほとんどの情報はオンラインでウィキペディアまたはZouとHastieによるオリジナルの2005年の論文(正規化とエラスティックネットによる変数の選択)からの情報を複製しています。
単純な理論のためのリソース?それが何をするか、いつ、なぜ、正規化が必要であり、どのようにそれを使用するかについて、どこかに単純で簡単な説明があります-for統計的に傾向がない人?元の論文が理解できれば理想的な情報源だと思いますが、もっと単純に問題と解決策があるところはありますか?
sklearnでの使用方法は?エラスティックネットが選択された理由(リッジ、ラッソ、または単純なOLS)とその方法を示すステップバイステップの例はありますかパラメータは計算されていますか? sklearnの例 の多くは、 example の場合、予測モデルに直接alphaおよびrhoパラメーターを含めます。
from sklearn.linear_model import ElasticNet
alpha = 0.1
enet = ElasticNet(alpha=alpha, rho=0.7)
y_pred_enet = enet.fit(X_train, y_train).predict(X_test)
ただし、これらの計算方法は説明されていません。投げ縄またはネットのパラメータをどのように計算しますか?
ドキュメントが不足しています。新しい issue を作成して改善しました。アンドレアスが言ったように、最良のリソースはおそらく ESL II オンラインでPDFとして無料で入手できます。
Alphaの値を自動的に調整するために、実際に ElasticNetCV を使用することが可能です。これにより、ElasticNet
クラスで GridSearchCV を使用する代わりに、冗長な計算が不要になり、チューニングalpha
。補足として、GridSearchCV
の最適値を見つけるために通常のrho
を使用できます。詳細については、 ElasticNetCV のドキュメント文字列を参照してください。
LassoとElasticNetについては、ElasticNetはより多くの変数を選択する傾向があるため、モデルが大きくなり(トレーニングにコストがかかる)、一般的にはより正確になります。特にLassoは機能間の相関に非常に敏感であり、非常に相関のある2つの有益な機能からランダムに1つを選択する可能性がありますが、ElasticNetは両方を選択する可能性が高くなり、(汎化能力の観点から、新しいサンプル)より安定したモデルになります。
私はあなたをこのブログ投稿に向けて指摘します: http://www.datarobot.com/blog/regularized-linear-regression-with-scikit-learn/ 。