1. 学ぶ
  2. /
  3. コース
  4. /
  5. Rで学ぶ caret を使った Machine Learning

Connected

演習

10-fold クロスバリデーション

動画で見たとおり、モデルの妥当性検証では、単一のランダムな学習/テスト分割よりも、複数の体系的なテストセットを使うほうがよい方法です。幸い、caret パッケージを使うと非常に簡単に実行できます。

model <- train(y ~ ., my_data)

caret は多くの種類のクロスバリデーションをサポートしており、どの種類のクロスバリデーションを使うかと分割数は、trainControl() 関数で指定し、train() の trControl 引数に渡します。

model <- train(
  y ~ ., 
  my_data,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = 10,
    verboseIter = TRUE
  )
)

重要な点として、学習に用いるモデルの手法はメインの train() 関数に、クロスバリデーションの手法は trainControl() 関数に渡すことに注意してください。

指示

100 XP
  • diamonds データセットの他のすべての変数を説明変数として、price を目的変数とする線形回帰を当てはめてください。train() 関数を使い、10-fold クロスバリデーションを用います。(処理を速くするために元の diamonds のサブセットを使用していますが、オブジェクト名は diamonds のままです。)
  • モデルをコンソールに出力し、結果を確認してください。