Personalizzare trainControl
Come hai visto nel video, l’area sotto la curva ROC è un utilissimo riassunto in un solo numero della capacità di un modello di distinguere la classe positiva da quella negativa (ad esempio, mine da rocce). Un AUC di 0.5 non è meglio del tirare a indovinare, un AUC di 1.0 indica un modello perfettamente predittivo e un AUC di 0.0 è perfettamente anti‑predittivo (cosa rara).
Spesso è una metrica molto più utile che limitarsi a ordinare i modelli per accuratezza a una soglia fissa, perché modelli diversi possono richiedere passaggi di calibrazione differenti (analizzando la matrice di confusione a ogni passaggio) per trovare la soglia di classificazione ottimale per quel modello.
Puoi usare la funzione trainControl() di caret per usare l’AUC (invece dell’accuratezza) nella fase di tuning dei parametri dei tuoi modelli. La funzione di comodo twoClassSummary() ti permette di farlo facilmente.
Quando usi twoClassSummary(), ricorda di includere sempre l’argomento classProbs = TRUE, altrimenti il modello genererà un errore! (Non puoi calcolare l’AUC solo con le predizioni di classe: servono anche le probabilità di classe.)
Questo esercizio fa parte del corso
Machine Learning con caret in R
Istruzioni dell'esercizio
- Personalizza l’oggetto
trainControlper usaretwoClassSummaryinvece didefaultSummary. - Usa una cross-validation a 10 fold.
- Assicurati di dire a
trainControl()di restituire le probabilità di classe.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)