Anpassa trainControl
Som du såg i videon är arean under ROC-kurvan ett mycket användbart sammanfattningsmått – ett enda tal – för hur väl en modell kan skilja den positiva klassen från den negativa (t.ex. minor från stenar). Ett AUC-värde på 0,5 är inte bättre än slumpmässig gissning, ett AUC-värde på 1,0 innebär en perfekt prediktiv modell, och ett AUC-värde på 0,0 är perfekt anti-prediktivt (vilket sällan inträffar).
Detta är ofta ett mycket mer användbart mått än att helt enkelt rangordna modeller efter deras träffsäkerhet vid ett fast tröskelvärde, eftersom olika modeller kan kräva olika kalibreringssteg – till exempel att granska en förväxlingsmatris i varje steg – för att hitta det optimala klassificeringströskelsvärdet för just den modellen.
Du kan använda funktionen trainControl() i caret för att använda AUC (i stället för träffsäkerhet) när du finjusterar modellens parametrar. Hjälpfunktionen twoClassSummary() gör detta enkelt.
När du använder twoClassSummary() ska du alltid inkludera argumentet classProbs = TRUE, annars kommer modellen att ge ett fel! (Du kan inte beräkna AUC enbart med klassförutsägelser – du behöver även klassprobabiliteter.)
Den här övningen är en del av kursen
Maskininlärning med caret i R
Övningsinstruktioner
- Anpassa
trainControl-objektet så att det användertwoClassSummaryi stället fördefaultSummary. - Använd 10-faldig korsvalidering.
- Se till att ange att
trainControl()ska returnera klassprobabiliteter.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)