trainControl のカスタマイズ
動画で見たように、ROC 曲線下面積(AUC)は、モデルが陽性クラスと陰性クラス(例:機雷と岩)をどれだけ識別できるかを単一の数値で要約する、とても有用な指標です。AUC が 0.5 ならランダム推測と同程度、1.0 なら完全に予測できるモデル、0.0 は完全に逆予測(現実にはほとんど起きません)を意味します。
AUC は、あるしきい値での正解率だけでモデルを順位付けするよりもしばしば有益です。というのも、モデルごとに最適なしきい値を見つけるためのキャリブレーション(各段階での混同行列の確認)が異なる場合があるからです。
caret の trainControl() を使うと、モデルのチューニング指標として精度ではなく AUC を用いることができます。補助関数 twoClassSummary() を使うと、この設定を簡単に行えます。
twoClassSummary() を使うときは、必ず引数 classProbs = TRUE を指定してください。指定しないとエラーになります(クラス予測だけでは AUC を計算できず、クラス確率が必要です)。
この演習はコースの一部です
Rで学ぶ caret を使った Machine Learning
演習の手順
defaultSummaryではなくtwoClassSummaryを使うように、trainControlオブジェクトをカスタマイズしてください。- 10 分割の交差検証を使用してください。
- クラス確率を返すように
trainControl()に指示してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)