クロスバリデーション
ご覧のとおり、クロスバリデーションは過学習を避けるための有効な方法です。この演習では、クロスバリデーションによる精度を計算します。
準備はできています。必要なデータ 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]