Ich möchte die Fläche unter der Kurve (AUC) von meinem Binärklassifizierer nach Kreuzvalidierung mit dem caret
Paket erhalten.AUC aus gemittelten Klassenwahrscheinlichkeiten in Caret R
Für die Standard-Konfusionsmatrix verwende ich das average
Argument in der caret::confusionMatrix
.
Beispiel:
controls = trainControl(method="repeatedcv"
, number=5
, repeats=10
, selectionFunction = "oneSE"
, classProbs = T
, summaryFunction = twoClassSummary
)
svm_5k = train(veracity ~ .
, data = training_data
, method = "svmLinear"
, trControl = controls
, verbose = FALSE
, metric = 'ROC'
)
Und dann die Verwirrung Matrix für Genauigkeit verwendet, F1 usw.
confmat = caret::confusionMatrix(svm_5k
, 'average')
Jetzt habe ich mit der AUC kämpfen: Ich bin jetzt das Abrufen der Klasse probs und befestigen diese als Spalte zu den Testdaten, wie testing_data$prob = predict(svm_5k, testing_data, type='prob')[,2]
Wenn ich dann über das pROC
Paket die AUC wie
roc(response = testing_data$veracity, predictor = testing_data$prob)
...
... Ich bin nicht mit der Kreuzvalidierung wie im controls
sondern nur die Momentaufnahme des Klassifikator angegeben.
Gibt es eine Möglichkeit, die gemittelten Wahrscheinlichkeiten aus dem Lebenslauf zu verwenden, um die AUC zu erhalten?
Aber das würde nicht den Durchschnitt der verschiedenen Lebensläufe geben. Wie du es beschreibst, ist es ähnlich wie bei mir. Ich möchte jedoch vermeiden, Vorhersagen aus nur einer Iteration zu erhalten, sondern den Durchschnitt aller CV-Wiederholungen. –
Idk Ich hatte eine ähnliche Aufgabe, aber ich verwendete 10-fache Kreuzvalidierung, machte ein Feld von Auc. In For-Loops habe ich sie verkettet und am Ende habe ich Mean verwendet. – grahinho