Aan de slagGa gratis aan de slag

trainControl aanpassen

Zoals je in de video zag, is het gebied onder de ROC-curve (AUC) een heel nuttige samenvatting in één getal van het vermogen van een model om de positieve en negatieve klasse van elkaar te onderscheiden (bijv. mijnen versus rotsen). Een AUC van 0,5 is niet beter dan willekeurig raden, een AUC van 1,0 is een perfect voorspellend model en een AUC van 0,0 is perfect anti-voorspellend (dat komt zelden voor).

Dit is vaak een veel bruikbaardere metriek dan modellen simpelweg rangschikken op basis van hun nauwkeurigheid bij een vaste drempel, omdat verschillende modellen mogelijk verschillende kalibratiestappen nodig hebben (bij elke stap naar een verwarringsmatrix kijken) om de optimale classificatiedrempel voor dat model te vinden.

Je kunt de functie trainControl() in caret gebruiken om AUC (in plaats van accuracy) te gebruiken bij het afstemmen van de parameters van je modellen. De handige functie twoClassSummary() maakt dit eenvoudig.

Als je twoClassSummary() gebruikt, zorg er dan altijd voor dat je het argument classProbs = TRUE toevoegt, anders geeft je model een fout! (Je kunt AUC niet berekenen met alleen klassevoorspellingen. Je hebt ook klassewaarschijnlijkheden nodig.)

Deze oefening maakt deel uit van de cursus

Machine Learning met caret in R

Cursus bekijken

Oefeninstructies

  • Pas het trainControl-object aan om twoClassSummary te gebruiken in plaats van defaultSummary.
  • Gebruik 10-voudige cross-validatie.
  • Zorg ervoor dat je trainControl() laat teruggeven dataklassewaarschijnlijkheden.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Create trainControl object: myControl
myControl <- trainControl(
  method = "cv",
  number = ___,
  summaryFunction = defaultSummary,
  classProbs = ___, # IMPORTANT!
  verboseIter = TRUE
)
Code bewerken en uitvoeren