Налаштування trainControl
Як ви бачили у відео, площа під ROC-кривою — це дуже корисна одновимірна характеристика здатності моделі відрізняти позитивний клас від негативного (наприклад, міни від каменів). AUC, що дорівнює 0,5, не кращий за випадкове вгадування; AUC = 1,0 означає ідеально передбачувану модель; AUC = 0,0 — це повністю антипередбачувана модель (таке трапляється рідко).
Часто це значно корисніша метрика, ніж просто ранжувати моделі за точністю при певному порозі, адже різним моделям можуть знадобитися різні кроки калібрування (перегляд матриці неточностей на кожному кроці), щоб знайти оптимальний поріг класифікації для цієї моделі.
Ви можете використати функцію trainControl() з пакета caret, щоб застосувати AUC (замість accuracy) під час налаштування параметрів своїх моделей. Допоміжна функція twoClassSummary() дає змогу зробити це легко.
Використовуючи twoClassSummary(), обов'язково додайте аргумент classProbs = TRUE, інакше модель видасть помилку! (Неможливо обчислити AUC лише за класовими передбаченнями. Потрібні також імовірності класів.)
Ця вправа є частиною курсу
Machine Learning з пакетом caret в R
Інструкції до вправи
- Налаштуйте об'єкт
trainControl, щоб використовуватиtwoClassSummaryзамістьdefaultSummary. - Використайте 10-кратну крос-валідацію.
- Обов'язково вкажіть у
trainControl(), що потрібно повертати імовірності класів.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)