Rでglmnetを使用してLASSOモデルを適切にトレーニングおよびテストする方法を知りたいのですが?
- 具体的には、外部テストデータセットがないために交差検証(または他の同様のアプローチ)を使用してLASSOモデルをテストする必要がある場合に、どうすればよいのかと思います。
私のシナリオを分解してみましょう:
glmnetモデルに通知してトレーニングするデータセットは1つだけです。その結果、モデルをテストする方法を生成するために、データを分割するために交差検証を使用する必要があります。
私はすでに使用cv.glmnet
していますが、パッケージの詳細によると:
glmnetのk分割交差検証を実行し、プロットを生成して、ラムダの値を返します。
交差検証は
cv.glmnet
、最良のラムダを選択するためだけに実行されますか、それともより一般的な交差検証手順としても機能していますか?- 言い換えれば、モデルを「テスト」するために別の相互検証ステップを実行する必要がありますか?
私は「そうです」という前提で作業しています。
その場合、モデルをクロス検証する方法はありcv.glmnet
ますか?
手動で行う必要がありますか、それともこの
caret
関数はglmnetモデルに役立ちますか??私は、クロスバリデーションの二つの同心「ループ」を使用しています...ドゥ私は経由CVの「内部ループ」を使用して
cv.glmnet
最良のラムダ値を決定するために内の各k個のk倍クロスバリデーション処理の「外部ループ」のひだ?すでに相互検証している
cv.glmnet
モデルの相互検証を行う場合cv.glmnet
、交差検証のその他の「外部ループ」の各フォールド内の各モデルから(「最良の」ラムダ値から)「最良の」モデルを分離するにはどうすればよいですか?- 注:「最良の」モデルは、最小値の1 SE以内のMSEを生成するラムダに関連付けられたモデルとして定義しています。これはモデル
$lambda.1se
内のcv.glmnet
です。
- 注:「最良の」モデルは、最小値の1 SE以内のMSEを生成するラムダに関連付けられたモデルとして定義しています。これはモデル
環境:
木の直径( "D")、D ^ 2、および種( "factor(SPEC)")に基づいて樹齢( "age")を予測しようとしています。[結果の方程式:Age ~ D + factor(SPEC) + D^2
]。私は約5万行のデータを持っていますが、データは縦方向であり(時間を通じて個人を追跡します)、約65種で構成されています。