web-dev-qa-db-ja.com

Rでデータパーティションを作成する

caretパッケージでは、75%のトレーニングと25%のテストのデータパーティションを作成するときに、次のものを使用します。

inTrain<- createDataPartition(y=spam$type,p=0.75, list=FALSE)

注:データセットの名前はspamで、ターゲット変数の名前はtypeです。

私の質問は、y=spam$type引数を含める目的は何ですか?

データパーティションを作成する目的は、トレーニングとテストに必要な比率に基づいてデータセット全体を分割することだけではありませんか?その引数をコードに含める必要があるのはなぜですか?

5
Aiden

問題のcreateDataPartition()はキャレットパッケージを参照していると思います。

sample$type引数が一般的に当てはまる要因である場合、ランダムサンプリングは各クラス内で発生します。

もう少し説明:たとえば、質問と同じ比率でirisデータセットを分割する場合。

attach(iris)
summary(iris)

各種に対する数に注意してください。次のコマンドを使用します。

library(caret)
inTrain <- createDataPartition(y=Species, p=0.75, list=FALSE)  

inTrainは、各種から約75%の行を取得します。これは、次のコマンドを発行することで確認できます。

summary(iris[inTrain,])

各カテゴリーには50種があり、トレーニングデータセットには38種(約75%)がランダムに選択されています。

9
Imran Ali