Ich habe seltsame Ergebnisse der ROC-Kurve beim Aufbau eines zufälligen Waldmodells für stark unausgeglichene Zwei-Klassen-Vorhersage. Die ursprüngliche Ereignisrate in der Stichprobe beträgt ~ 2% und ich verwende Gewichtung, um Klassenungleichgewicht zu bekämpfen.
In diesem Fall habe ich meine Probe gewichtet, so dass Ereignisrate 1: 4 (25%)
Mein Modell ist auf folgende Weise Aufstellmaße:Weird ROC-Kurve
forest <- ranger(data = sample[,c('fraud', features)]
, num.trees = 350
, case.weights = sample$wt
, probability = T
, importance = 'impurity'
, write.forest = T
, sample.fraction = 0.5
, seed = 98
, dependent.variable.name = 'fraud')
Ich bin recht gute Ergebnisse mit dieser bekommen set-up, wie Sie jedoch in der Konfusionsmatrix unter
predicted
true 0 1
0 815800 11391
1 13283 5503
True negative rate - 29%
Negative predictive value - 33%
sehen kann, wenn ich ROC-Kurve bin Zeichnung ich folgende Handlung erhalten
perf <- prediction(forest$predictions[,2], sample$fraud)
pred3 <- performance(perf, "tnr", "fnr")
plot(pred3, main="ROC Curve for Random Forest", col="blue", lwd=2)
abline(a=0,b=1,lwd=2,lty=2,col="gray")
Ich kann nicht verstehen, warum meine Vorhersage erst nach 50% des Entscheidungsintervalls beginnt. Habt ihr eine Ahnung oder irgendeine vorherige Erfahrung?
Nun, es ist wirklich egal, ob ich Klassen tauschen, oder? Ich erlebe die gleiche Geschichte, wenn ich Kurve für andere Klasse zeichne ... – MiksL