始める無料で始める

5-fold cross-validation

このコースでは、caret パッケージの柔軟性を幅広く体験するために、多様なデータセットを使います。ここでは有名な Boston 住宅価格データセットを用いて、ボストン郊外各地域の住宅価格中央値を予測します。

前の演習とまったく同じコードを使えますが、モデルで使うデータセットだけを変更します。

model <- train(
  medv ~ ., 
  Boston, # <- new!
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = 10,
    verboseIter = TRUE
  )
)

次に、trainControl()number 引数を使って、10 分割のクロスバリデーションを 5 分割に減らします。

trControl = trainControl(
  method = "cv", 
  number = 5,
  verboseIter = TRUE
)

この演習はコースの一部です

Rで学ぶ caret を使った Machine Learning

コースを見る

演習の手順

  • Boston 住宅データセットに対して lm() モデルを当てはめ、目的変数を medv、それ以外のすべての変数を説明変数にします。
  • 10 分割ではなく 5 分割のクロスバリデーションを使用します。
  • モデルをコンソールに出力し、結果を確認します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Fit lm model using 5-fold CV: model
model <- train(
  ___, 
  ___,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = ___,
    verboseIter = TRUE
  )
)

# Print model to console
コードを編集して実行