問題タブ [glmnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 「x」と「w」は同じ長さでなければなりません - weighted.mean.default のエラー
Rのパッケージglmnet
に問題があります。市販のパッケージを使用しようとしていますが、次の問題が発生しています。
weighted.mean.default(y, weights) のエラー: 'x' と 'w' は同じ長さでなければなりません
ただし、入力は同じサイズです。
このエラーの原因は何ですか?
r - R での並列関数の入れ子 (
などに精通していforeach
ます%dopar%
。parallel
のオプションにも精通していますcv.glmnet
。しかし、次のようにネストされた並列処理をどのように設定しますか?
並列交差検証:
並列交差検証ではありません:
2 つのシステム時間については、ごくわずかな差しかありません。
並列処理は行われていますか? または、ネストされた演算子を明示的に使用する必要がありますか?
副次的な質問: クラスター オブジェクトで 8 つのコアが使用可能で、foreach
ループに 2 つのタスクが含まれている場合、各タスクに 1 つのコアが割り当てられるか (残りの 6 つのコアはアイドル状態のまま)、または各タスクに 4 つのコアが割り当てられますか (8 つのコアすべてを使い果たす)合計で)?特定の時間に使用されているコアの数を照会する方法は何ですか?
r - cv.glmnet は完全なラムダ シーケンスを使用してデータを過剰適合させていますか?
cv.glmnet
ほとんどの研究論文や企業で使用されています。cv.glmnet
forのような同様の関数glmnet.cr
(継続率順序回帰のなげなわを実装する同様のパッケージ) を構築しているときに、この問題に遭遇しましたcv.glmnet
。
glmnet
オブジェクトが完全なデータで作成された後、次のステップは次のようになります:lambda
適合された完全なモデルから
現在、折り畳みの数が 3 を超えていることを確認します。
クロス検証結果を保存するためのリストが作成されます
for loop
交差検証の理論に従って、さまざまなデータ部分に適合するように実行します
それで何が起こるか。データを完全なデータに適合させた後、完全なデータからのラムダを使用して相互検証が行われます。これがデータの過適合ではない可能性があることを誰かに教えてもらえますか? 相互検証では、モデルがデータの除外された部分に関する情報を持たないようにしたいと考えています。しかしcv.glmnet
、これでカンニング!
r - glmnet の R エラー: 外部関数呼び出しの NA/NaN/Inf
glmnet を使用してモデルを作成しようとしています (現在、ラムダ値を見つけるために cv を使用しています)、エラーが発生していますNA/NaN/Inf in foreign function call (arg 5)
。NA を持つすべてのデータ ポイントを削除すると、コマンドが正常に実行されるため、これはデータ セットの NA 値と関係があると思います。
glmnetはNA 値を処理できるという印象を受けました。エラーの原因がわかりません:
データセットは次のようになります。
r - Glmnet。glmnet によって計算されたか、パラメーターとして渡されたかによって、同じラムダ ベクトルの異なる結果
リッジ正規化を使用した Glmnet は、ラムダ ベクトルが glmnet アルゴリズムによって選択された場合と、関数呼び出しで指定された場合とで、最初のラムダ値の係数を異なる方法で計算します。たとえば、2 つのモデル (同一であると予想されます)
完全に異なる係数を与える:
異なるデータセットでも同じことが起こります。glmnet に lambda が提供されていない場合、lambda.max coef(m, s=m$lambda[1]) (切片を除く) のすべての係数はゼロに非常に近く、予測は任意の X に対して等しくなります (丸めのため? )。
私の質問:
- これはなぜですか?違いは意図的なものですか?
- 最大ラムダ coef(m, s=m$lambda[1]) の係数はどのくらい正確に決定されますか?
glmnet - glmnet による変数選択
大学のプロジェクトでは、glmnet 関数を使用してモデルを見つける必要があります。この関数は、変数の推定と選択を同時に行う必要があります。
インターネットで見つけた例と同様に、次の R コードがあります。
いくつかの出力が得られますが、この手順で選択される変数がどれかわかりません。
選択した変数を取得するために出力のどこを見なければならないかを明確にすることで、誰かが私を助けてくれますか?
よろしくお願いします。
敬具、
ルーヴェン・カトリック大学のピーター・スチューデント
glmnet - 交差検証のための glmnet のデフォルトのラムダ シーケンス
cv.glmnet (R の glmnet) または LassoCV (scikit-learn) が、相互検証で使用する正則化定数 (ラムダ) のシーケンスを選択する方法を知っている人はいますか? どうもありがとうございました!
r - Lasso、glmnet、データの前処理
glmnet パッケージを使用して、バイナリ結果 (ロジット) を持つモデルになげなわ (L1 ペナルティ) を当てはめようとしています。私の予測子は、1 つの連続変数を除いて、すべてバイナリです (1/0 は順序付けられておらず、~4000 です)。予測変数をスパース行列に変換する必要があります。そうしないと永遠に、1 日かかるからです。私の質問は、行列を疎行列に変換するだけでなく、sparse.model.matrix を使用しているようです。何故ですか?ここでこれを行う必要がありますか?どちらの方法でも、結果は少し異なります。
また、因子を因子としてコーディングする必要がありますか (結果と予測因子の両方に関して)、またはスパース行列を使用して、結果が二項であることを glmnet モデルで指定するだけで十分ですか?
これが私がこれまでに行っていることです
私の 2 つの質問を要約すると、次のとおりです。[はいの場合、行列を疎行列に変換するのと実際には何が違うのですか] 2-バイナリ変数を因子としてコード化する必要がありますか? 私が尋ねる理由は、私のデータセットが巨大であることです。因子としてコーディングせずにそれを行うだけで、多くの時間を節約できます。
r - glmnet パッケージを使用して最適なラムダの CV エラーを抽出する方法は?
R の回帰にglmentパッケージを使用しcv.fit<-cv.glmnet(x,y,...)
ていcvfit$lambda.min
ます。MSE
しかし、そのラムダに対応する(平均二乗誤差)も取得したいと思います。誰かがそれを手に入れるのを手伝ってくれますか?
r - 多項式の R で cv.glmnet を使用中にエラーが発生しました
データの相互検証を実行するために使用しようとするとcv.glmnet
、エラーが発生しました
以下の行y
は、3 レベルの変数です (as.factor()
元の変数で使用しました)。予測子x
は、1 つの連続変数 (mage) といくつかの因子変数 (ここでもas.factor()
カテゴリ変数で使用されます) で構成されます。オンラインの別の投稿で示唆されているように、すべての予測子をまとめて収集するための私のコードは次のとおりです。
続いて、以下を使用した交差検証が行われます。
誰かが以前にこの問題に直面したことがあるかどうか、考えられる原因は何かと思っていました。