タグ付けされた質問 「elastic-net」

投げ縄と尾根回帰のペナルティを組み合わせた回帰モデルの正則化手法。



1
メチル化データのglmnetを使用した機能の選択とモデル(p >> N)
GLMとElastic Netを使用してそれらの関連機能を選択し、線形回帰モデルを構築します(つまり、予測と理解の両方であるため、比較的少ないパラメーターを残しておく方が良いでしょう)。出力は連続的です。それはだあたりの遺伝子例でした。私はパッケージについて読んでいますが、従うべき手順について100%確信が持てません。200002000020000505050glmnet CVを実行してラムダを選択します: cv <- cv.glmnet(x,y,alpha=0.5) (Q1)入力データが与えられたら、別のアルファ値を選択しますか? (Q2)モデルを構築する前に他に何かする必要がありますか? モデルに適合: model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min) (Q3)「共分散」よりも優れているものはありますか? (Q4)ラムダがCVによって選択された場合、なぜこのステップが必要なのnlambda=ですか? (Q5)lambda.minまたはを使用する方が良いlambda.1seですか? 係数を取得して、どのパラメーターが抜けているか( "。")を確認します。 predict(model, type="coefficients") ヘルプページでは、多くがあるpredict方法(例えば、predict.fishnet、predict.glmnet、predict.lognet、など)。しかし、例で見たように、「プレーン」は予測します。 (Q6)またはその他を使用する必要がありますpredictかpredict.glmnet? 正則化方法について読んだことにもかかわらず、私はRとこれらの統計パッケージがまったく新しいので、問題をコードに適合させているかどうかを確認することは困難です。どんな提案も歓迎します。 UPDATE に基づいて、クラス列のオブジェクトがという要素が含まれ先に述べたように、」finalModelリサンプリングによって選択されたチューニングパラメータの値を装着したモデルで、このオブジェクトはことを使用して、新しいサンプルの予測を生成するために、伝統的な方法で使用することができますモデルの予測関数。」 caretアルファとラムダの両方を調整するために使用: trc = trainControl(method=cv, number=10) fitM = train(x, y, trControl = trC, method="glmnet") fitM前のステップ2を交換しますか?その場合、glmnetオプション(type.gaussian="naive",lambda=cv$lambda.min/1se)を今指定する方法は? そして、次predictのステップでは、私は置き換えることができますmodelにfitM? 私が行った場合 trc = trainControl(method=cv, number=10) fitM = train(x, y, trControl = trC, method="glmnet") …

2
正則化またはペナルティ化によるARIMAXモデルの適合(たとえば、なげなわ、エラスティックネット、またはリッジ回帰)
予測パッケージのauto.arima()関数を使用して、ARMAXモデルをさまざまな共変量に適合させます。ただし、選択する変数は多数あることが多く、通常はそれらのサブセットで機能する最終モデルになります。私は人間であり、バイアスの影響を受けるため、変数選択のアドホックな手法は好きではありませんが、時系列の相互検証は難しいので、利用可能な変数のさまざまなサブセットを自動的に試す良い方法が見つかりませんでした。自分の最高の判断力を使ってモデルを調整するのにこだわっています。 glmモデルを適合させると、glmnetパッケージを介して、正則化と変数選択にエラスティックネットまたは投げ縄を使用できます。ARMAXモデルでエラスティックネットを使用するための既存のツールキットがRにありますか、それとも自分でロールバックする必要がありますか?これは良いアイデアですか? 編集:ARとMAの項(例えばAR5とMA5まで)を手動で計算し、glmnetを使用してモデルに適合させるのは理にかなっていますか? 編集2:FitARパッケージは、そのすべてではなく一部を私に与えているようです。

1
glmnetがZou&Hastieのオリジナルペーパーの「素朴な」弾性ネットを使用するのはなぜですか?
β *=(1+λ2) β。L=1n∥∥y−Xβ∥∥2+λ1∥β∥1+λ2∥β∥22,L=1n‖y−Xβ‖2+λ1‖β‖1+λ2‖β‖22,\mathcal L = \frac{1}{n}\big\lVert y - X\beta\big\rVert^2 + \lambda_1\lVert \beta\rVert_1 + \lambda_2 \lVert \beta\rVert^2_2,β^∗=(1+λ2)β^.β^∗=(1+λ2)β^.\hat\beta^* = (1+\lambda_2)\hat\beta. しかし、その後のglmnet論文Friedman、Hastie、&Tibshirani(2010)座標降下による一般化線形モデルの正則化パスは、この再スケーリングを使用せず、次のような簡単な脚注しかありませんでした。 Zou and Hastie(2005)は、このペナルティを単純なエラスティックネットと呼び、エラスティックネットと呼ばれる再スケーリングされたバージョンを好みました。ここでこの区別を削除します。 そこ(またはHastie et al。の教科書のいずれか)にはこれ以上の説明はありません。やや不可解です。著者は、それがあまりにもアドホックだと考えたため、再スケーリングを省いたのですか?さらなる実験でパフォーマンスが悪化したためですか?GLMケースに一般化する方法が明確ではなかったからですか?何も思いつきません。しかし、いずれにせよglmnetそれ以降、このパッケージは非常に人気を博したため、最近ではZou&Hastieからのリスケーリングを使用している人はいないようで、ほとんどの人はおそらくこの可能性に気付いていません。 質問:結局のところ、これは良いアイデアですか、悪いアイデアですか? でglmnetパラメータ化、再スケーリングゾウ&Hastieはする必要がありますβ^∗=(1+λ(1−α))β^.β^∗=(1+λ(1−α))β^.\hat\beta^* = \big(1+\lambda(1-\alpha)\big)\hat\beta.

2
ラムダが、エラスティックネット回帰のラムダの推奨値である「最小値から1つの標準誤差以内」であるのはなぜですか?
エラスティックネット回帰でラムダが果たす役割を理解しています。そして、なぜ相互検証エラーを最小化するラムダ値であるlambda.minを選択するのかを理解できます。 私の質問は、統計文献のどこでlambda.1seを使用することを推奨していますか、それはCVエラーと1つの標準エラーを最小にするラムダの値ですか?正式な引用を見つけることも、これがしばしば良い値である理由を見つけることもできないようです。私はそれがより制限された正則化であり、パラメータをゼロに向かってより小さくすることを理解していますが、lambda.1seがlambda.minよりも良い選択である条件が常にあるとは限りません。誰かが説明を助けることができますか?

1
ブリッジペナルティとElastic Netの正則化
LASSO(L1L1L_1)やRidge(L2L2L_2)など、いくつかのペナルティ関数と近似がよく研究されており、これらが回帰でどのように比較されるかがわかります。 ∑∥βj∥γ∑‖βj‖γ\sum \|\beta_{j}\|^{\gamma}γ=1γ=1\gamma = 1γ=2γ=2\gamma = 2 Wenjiang [ 1 ]は場合のBridgeペナルティをLASSOと比較しましたが、\ sum \ lambda_ {2として与えられるLASSOとRidgeペナルティの組み合わせであるElastic Net正則化との比較を見つけることができませんでした} \ | \ベータ\ | ^ {2} + \ lambda_ {1} \ | \ベータ\ | _ {1}。γ≥1γ≥1\gamma \geq 1∑λ2∥β∥2+λ1∥β∥1∑λ2‖β‖2+λ1‖β‖1\sum \lambda_{2} \|\beta\|^{2}+\lambda_{1}\|\beta\|_{1} Elastic Netとこの特定のBridgeには同様の制約形式があるため、これは興味深い質問です。さまざまなメトリックを使用してこれらの単位円を比較します(pppはミンコフスキー距離の累乗です)。 p=1p=1p = 1はLASSOに対応し、p=2p=2p = 2はリッジに対応し、p=1.4p=1.4p = 1.4は1つの可能なブリッジに対応します。Elastic Netは、L1L1L_1およびL2L2L_2ペナルティーに均等に重み付けして生成されました。これらの数値は、たとえば、スパース性を特定するのに役立ちます(Elastic NetがLASSOから保存している間、Bridgeは明らかに欠けています)。 では、のBridgeは、正則化(スパース性以外)に関してElastic Netとどのように比較されますか?私は教師あり学習に特別な関心を持っているので、おそらく機能の選択/重み付けに関する議論が適切です。幾何学的な議論も歓迎します。1&lt;γ&lt;21&lt;γ&lt;21<\gamma <2 …

3
大きな、小さな問題を扱うときのモデルの安定性
イントロ: 古典的な「大きなp、小さなnの問題」のデータセットがあります。利用可能なサンプル数n = 150で、可能な予測子の数p = 400。結果は連続変数です。 最も「重要な」記述子、つまり、結果を説明し、理論の構築を支援するのに最適な記述子を見つけたいと思います。 このトピックに関する調査の後、大きなp、小さなnの場合にLASSOとElastic Netが一般的に使用されることがわかりました。私の予測子のいくつかは非常に相関しており、重要度評価でそれらのグループを保持したいので、Elastic Netを選択しました。重要度の尺度として回帰係数の絶対値を使用できると思います(間違っている場合は修正してください。データセットは標準化されています)。 問題: サンプル数が少ないので、どのようにして安定したモデルを実現できますか? 私の現在のアプローチは、MSEスコアを平均する10倍の交差検証を使用して、データセットの90%でグリッド検索で最適なチューニングパラメーター(ラムダとアルファ)を​​見つけることです。次に、データセットの90%全体で最適なチューニングパラメーターを使用してモデルをトレーニングします。データセットの10%のホールドアウトでRの2乗を使用してモデルを評価できます(これは15サンプルのみです)。 この手順を繰り返し実行すると、Rの2乗評価に大きなばらつきが見つかりました。同様に、非ゼロの予測子の数はその係数と同様に異なります。 予測変数の重要性のより安定した評価と、最終モデルのパフォーマンスのより安定した評価を取得するにはどうすればよいですか? 手順を繰り返し実行して多くのモデルを作成してから、回帰係数を平均できますか?または、モデルの予測子の出現回数を重要度スコアとして使用する必要がありますか? 現在、40から50個の非ゼロの予測子を取得しています。安定性を高めるために、予測子の数をより厳しくペナルティにすべきですか?

2
Elastic Net Logistic Regressionでの最適なアルファの選択
glmnetR のパッケージを使用して、0から1のグリッドでラムダ値を選択することにより、ヘルスケアデータセットに対してElastic-Netロジスティック回帰を実行しています。短縮コードは次のとおりです。αα\alpha alphalist &lt;- seq(0,1,by=0.1) elasticnet &lt;- lapply(alphalist, function(a){ cv.glmnet(x, y, alpha=a, family="binomial", lambda.min.ratio=.001) }) for (i in 1:11) {print(min(elasticnet[[i]]$cvm))} これは、からの増分でのアルファの各値の平均交差検証誤差を出力します。1.0 0.10.00.00.01.01.01.00.10.10.1 [1] 0.2080167 [1] 0.1947478 [1] 0.1949832 [1] 0.1946211 [1] 0.1947906 [1] 0.1953286 [1] 0.194827 [1] 0.1944735 [1] 0.1942612 [1] 0.1944079 [1] 0.1948874 私が文献で読んだものに基づいて、最適な選択は、cvエラーが最小化される場所です。しかし、アルファの範囲にわたってエラーには多くの変動があります。私はいくつかの局所的な最小値を見ていますが、グローバルな最小誤差はfor です。αα\alpha0.1942612alpha=0.8 一緒に行くのは安全alpha=0.8ですか?又は、変形所与、Iは、再実行する必要がありcv.glmnet、よりクロスバリデーションひだ(例えば、との代わりに)、または、おそらくより多くのの間のインクリメント及びCVエラーパスの鮮明な画像を取得しますか?10 α202020101010αα\alphaalpha=0.01.0

2
弾性/尾根/なげなわ分析、それでは何ですか?
予測子の収縮/選択のためのエラスティックネット手順に本当に興味を持っています。非常に強力なようです。 しかし、科学的な観点からは、係数を取得したらどうすればよいかわかりません。どんな質問に答えていますか?これらはその結果に最も影響を与える変数であり、これらは検証中に最良の分散/バイアス比を与える係数ですか? これはもちろん、古典的なp値/信頼区間アプローチと比較して非常に記述的/予測的なアプローチです。推論推定は現在Tibshirani&Co.によって研究されていますが、まだ実験的です。 一部の人々は、エラスティックネットによって選択された変数を使用して古典的な推論分析を実行していますが、これにより、手法によってもたらされる分散の制限がなくなります。 もう1つの問題は、エラスティックネットのラムダおよびアルファパラメーターが相互検証によって選択されるため、ランダムな変動の影響を受けることです。したがって、cv.glmnet()を実行するたびに、常に異なる係数を持つ予測子のわずかに異なるサブセットを選択します。 正しいラムダとアルファをランダム変数として考慮してこれを解決し、クロス検証ステップをn回再実行して、これらのパラメータの分布を取得することについて考えました。このように、すべての予測子に対して発生回数があり、すべての係数に対して結果の分布があります。これにより、範囲統計(係数のsdなど)でより一般化可能な結果が得られるはずです。ラムダとアルファがこのように選んだ分布が漸近的に近似するかどうかを確認することも興味深いでしょう。完全に理解していない)。 最後に私の質問は次のとおりです。アルファとラムダに基づいた相互検証を使用してエラスティックネットから予測子と係数を取得したら、これらの結果をどのように表示する必要がありますか。それらについてどのように議論すべきですか?何を学びましたか?私たちはどの仮説/一般化を確信していますか?

1
なげなわ、リッジ、またはエラスティックネットソリューションのパスが単調になる条件の明確なセットはありますか?
このなげなわプロット(glmnet)の結論は、単調ではないなげなわ推定器の解の経路を示しています。つまり、係数の一部は、縮小する前に絶対値が増加します。 私は、データセットのいくつかの種類にこれらのモデルを適用し、決してこの動作を見て「野生では、」今日は、彼らがいたことを想定していたまできましたいつも単調。 ソリューションパスが単調であることが保証される条件の明確なセットはありますか?パスの方向が変わると、結果の解釈に影響しますか?

3
統計的推論を行うときに正則化を使用する
予測モデルを構築するときの正則化の利点(バイアスと分散、過剰適合の防止)について知っています。しかし、回帰モデルの主な目的が係数の推論であるときに正則化(投げ縄、リッジ、エラスティックネット)を行うことも良い考えかと思います(統計的に重要な予測子を参照)。私は、人々の考えや、これを扱っている学術雑誌や非学術記事へのリンクを聞きたいです。

1
同時L1およびL2正則化(別名エラスティックネット)を使用した線形回帰のベイジアン解釈はありますか?
ペナルティを伴う線形回帰は、係数のガウス事前分布が与えられたMAP推定値を見つけることと同等であることはよく知られています。同様に、l 1ペナルティを使用することは、事前分布としてラプラス分布を使用することと同等です。l2l2l^2l1l1l^1 とl 2の正規化の重み付き組み合わせを使用することは珍しくありません。これは、係数の事前分布に相当すると言うことができます(直感的には、そうでなければならないようです)。この分布に素敵な分析形式(ガウスとラプラシアンの混合物)を与えることができますか?そうでない場合は、なぜですか?l1l1l^1l2l2l^2

1
モデルの比較にR 2乗値は適切ですか?
私は、自動車の広告サイトで利用可能な価格と機能を使用して、自動車の価格を予測するための最良のモデルを特定しようとしています。 このために、scikit-learnライブラリーのモデルと、pybrainとneurolabのニューラルネットワークモデルを使用しました。これまでに使用したアプローチは、いくつかのモデル(機械学習アルゴリズム)で一定量のデータを実行し、scikit-learnメトリックモジュールで計算されたR2R2R^2値を比較することです。 あるR2R2R^2異なるモデルの性能を比較するための良い方法は? エラスティックネットやランダムフォレストなどのモデルでは非常に許容できる結果が得られましたが、ニューラルネットワークモデルのR2R2R^2値は非常に低いので、R2R2R^2はニューラルネットワーク(または非線形手法)を評価するための適切な方法ですか?

2
機能が関連付けられている場合、LassoまたはElasticNetがRidgeよりも優れている理由
150個の機能のセットがあり、それらの多くは互いに高度に相関しています。私の目標は、範囲が1〜8の離散変数の値を予測することです。サンプルサイズは550で、10倍の交差検定を使用しています。 知る限りでは、正則化方法(Lasso、ElasticNet、Ridge)の中で、Ridgeは機能間の相関がより厳密です。そのため、Ridgeを使用すると、より正確な予測が得られると予想していました。ただし、私の結果は、LassoまたはElasticの平均絶対誤差が約0.61であるのに対し、このスコアはリッジ回帰では0.97であることを示しています。これの説明は何だろうか。これは私が多くの機能を持っているからであり、Lassoは冗長な機能を取り除いて一種の機能選択を行うため、パフォーマンスが向上しますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.