開始使用免費開始

自訂 trainControl

就像你在影片中看到的,ROC 曲線下面積(AUC)是一個非常實用的單一指標,可以概括模型把正類與負類(例如地雷與岩石)區分開來的能力。AUC 若為 0.5,等同隨機猜測;AUC 為 1.0,代表模型有完美的預測能力;AUC 為 0.0,則是完全反預測(這種情況很少見)。

相較於只在某個固定閾值下用「準確率」來排序模型,AUC 通常更有參考價值。因為不同模型可能需要不同的校準步驟(在每一步檢視混淆矩陣)才能找到該模型的最佳分類閾值。

你可以在 caret 中使用 trainControl(),將調參的效能指標改為 AUC(而不是 accuracy)。twoClassSummary() 這個方便的函式可以讓你輕鬆做到這點。

使用 twoClassSummary() 時,務必加入引數 classProbs = TRUE,否則模型會拋出錯誤!(僅靠類別預測無法計算 AUC,你還需要類別機率。)

本練習屬於課程

使用 R 的 caret 進行 Machine Learning

檢視課程

練習說明

  • trainControl 物件自訂為使用 twoClassSummary,而非 defaultSummary
  • 使用 10 折交叉驗證。
  • 記得在 trainControl() 中要求回傳類別機率。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Create trainControl object: myControl
myControl <- trainControl(
  method = "cv",
  number = ___,
  summaryFunction = defaultSummary,
  classProbs = ___, # IMPORTANT!
  verboseIter = TRUE
)
編輯並執行程式碼