LoslegenKostenlos loslegen

trainControl anpassen

Wie du im Video gesehen hast, ist die Fläche unter der ROC-Kurve (AUC) eine sehr nützliche Zusammenfassung in einer einzigen Zahl für die Fähigkeit eines Modells, die positive von der negativen Klasse zu unterscheiden (z. B. Minen von Felsen). Eine AUC von 0,5 ist nicht besser als zufälliges Raten, eine AUC von 1,0 entspricht einem perfekt vorhersagenden Modell, und eine AUC von 0,0 ist perfekt anti-prädiktiv (was selten vorkommt).

Das ist oft eine deutlich hilfreichere Kennzahl, als Modelle einfach nach ihrer Genauigkeit bei einem festen Schwellenwert zu sortieren, da unterschiedliche Modelle möglicherweise unterschiedliche Kalibrierungsschritte erfordern (Betrachten der Konfusionsmatrix in jedem Schritt), um den optimalen Klassifikationsschwellenwert für dieses Modell zu finden.

Du kannst die Funktion trainControl() in caret verwenden, um AUC (anstelle von Accuracy) zum Tuning der Modellparameter zu nutzen. Die praktische Funktion twoClassSummary() macht dir das leicht.

Wenn du twoClassSummary() verwendest, denke unbedingt daran, das Argument classProbs = TRUE anzugeben, sonst wirft dein Modell einen Fehler! (AUC lässt sich nicht nur mit Klassenprädiktionen berechnen. Du brauchst dafür auch Klassenwahrscheinlichkeiten.)

Diese Übung ist Teil des Kurses

Maschinelles Lernen mit caret in R

Kurs anzeigen

Anleitung zur Übung

  • Passe das trainControl-Objekt so an, dass twoClassSummary statt defaultSummary verwendet wird.
  • Verwende 10-fache Kreuzvalidierung.
  • Sorge dafür, dass trainControl() Klassenwahrscheinlichkeiten zurückgibt.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Create trainControl object: myControl
myControl <- trainControl(
  method = "cv",
  number = ___,
  summaryFunction = defaultSummary,
  classProbs = ___, # IMPORTANT!
  verboseIter = TRUE
)
Code bearbeiten und ausführen