2017-12-11 5 views
0

Ist es möglich, einen anderen ROC-Sollwert in der Caret Train-Funktion zu wählen, anstatt metric = ROC zu verwenden (was meiner Meinung nach die AUC maximiert).Auswählen eines anderen ROC-Sollwerts in Caret

Zum Beispiel:

random.forest.orig <- train(pass ~ x+y, 
       data = meter.train, 
       method = "rf", 
       tuneGrid = tune.grid, 
       metric = "ROC", 
       trControl = train.control) 

Insbesondere habe ich ein Zwei-Klassen-Problem (gescheitert oder Pass), und ich mag die Prognosen der scheitern zu maximieren, während immer noch eine Genauigkeit nicht beibehalten wird (oder negativen Vorhersagewert) von> 80% . dh für jede 10 Fehlschläge sage ich voraus, dass mindestens 8 von ihnen korrekt sind.

+0

Sie wollen also die Genauigkeit der Klassifizierung zu maximieren? – topepo

Antwort

0

Sie können das Objekt caret::trainControl() so anpassen, dass anstelle der Genauigkeit die AUC zur Optimierung der Parameter Ihrer Modelle verwendet wird. Bitte überprüfen Sie die caret documentation für Details. (Die eingebaute Funktion twoClassSummary berechnet die Empfindlichkeit, Spezifität und Fläche unter der ROC-Kurve).

Hinweis: Um Klassenwahrscheinlichkeiten zu berechnen, die pass Funktion muss Faktor sein

Hier unter ist ein Beispiel unter Verwendung von 5-fach CV:

fitControl <- caret::trainControl(
    method = "cv", 
    number = 5, 
    summaryFunction = twoClassSummary, 
    classProbs = TRUE, 
    verboseIter = TRUE 
) 

So wird Ihr Code angepasst werden ein bisschen:

random.forest.orig <- train(pass ~ x+y, 
      data = meter.train, 
      method = "rf", 
      tuneGrid = tune.grid, 
      metric = "ROC", 
      trControl = fitControl) 

# Print model to console to examine the output 
random.forest.orig 
+0

Danke, aber ich suche einen anderen Punkt entlang der ROC-Kurve (nicht die AUC zu maximieren). Insbesondere versuche ich, den negativen Vorhersagewert bei 80% zu halten, während ich immer noch die Anzahl der vorhergesagten Fehler maximiere. – BSnider

+0

Beziehen Sie sich auf den besten Trade-Off-Punkt auf der ROC-Kurve? d. h. Occam's Rasierapparat – Lavande

+0

vielleicht können Sie sich dieses Dokument ansehen: https://www.rdocumentation.org/packages/caret/versions/6.0-77/topics/train – Lavande

Verwandte Themen