2017-07-19 1 views
0

私はRでplsrを学んでいて、私を混乱させるいくつかの異なる例に出くわします。私は以下の2つの方法で最良の数の部品を適合させて見つける2つの方法を見てきました。私はちょうどこれらのどれが適切な方法であり、好ましいものかを知りたいですか?Rでplsr()を正しく使うには?

1)データと呼ばれるデータフレームがあり、列車データdata.trainとテストデータdata.testに分割されています。次いでPLSRは

plsr.fit = plsr(formula, data = data.train, validation = "CV", scale = TRUE) 
summary(plsr.fit) 

次いで最小CV値に基づいてncomp値を取得するように取り付けられています。データの任意の分割なし

2)、単に次に最小CV値に基づいてncomp値を取得し、完全なデータ

plsr(formula, data = data, validation = "CV", scale = TRUE) 
summary(plsr.fit) 

にモデルをフィッティングします。

私が混乱する部分が最初の方法です。 validation = "CV"は既に含まれており、自動的に10倍CVを適用するので、完全なデータではなくモデルがトレーニングデータに適合するのはなぜですか?この場合、トレーニングデータとテストデータに分割され、10倍のクロスバリデーションが自動的に適用されます。

+0

'plsr'はあなたが定義した関数ですか、それともパッケージから来たものですか? – bouncyball

+0

いいえ、 'pls'ライブラリの下にある組み込み(部分最小二乗回帰)関数です。 –

答えて

2

クロス検証を実行すると、使用しているデータセットに適合したままです。実際に見られないデータと比較しない限り、実際にモデルの精度をテストすることはできません。そのため、通常、データは、「トレーニング」(クロスバリデーションやその他の選択方法を含む)では約80%、交差検定後は「テスト」の20%に分割されます。

+0

私は理解していると思います。ありがとう@マット –

関連する問題