始める無料で始める

クロスバリデーション

ご覧のとおり、クロスバリデーションは過学習を避けるための有効な方法です。この演習では、クロスバリデーションによる精度を計算します。

準備はできています。必要なデータ defaultData とモデルは用意されています。精度を計算する関数はコード冒頭にあります。これがコスト関数です。内容はそのままにして、下の cv.glm() の呼び出しで使用してください。さっそく試してみましょう。

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

Rで学ぶマーケティングアナリティクスのための機械学習

コースを見る

演習の手順

  • 6-分割のクロスバリデーションを使って、モデル logitModelNew の精度を計算してください。必要な関数は、boot パッケージの cv.glm() です。クロスバリデーションで得られた精度は、結果オブジェクトの delta 要素の最初の位置に格納されています。

  • クロスバリデーションでの精度を、インサンプル検証での精度と比較してください。覚えていますか?インサンプルは 0.7922901 でした。

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

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

library(boot)
# Accuracy function
costAcc <- function(r, pi = 0) {
  cm <- confusion.matrix(r, pi, threshold = 0.3)
  acc <- sum(diag(cm)) / sum(cm)
  return(acc)
}

# Cross validated accuracy for logitModelNew
set.seed(534381)
cv.glm(___, ___, cost = ___, K = ___)$delta[1]
コードを編集して実行