2016-09-28 2 views
0

У меня возникают странные результаты кривой ROC при построении случайной модели леса для сильно несбалансированного двухклассного предсказания. Исходная частота событий в выборке составляет ~ 2%, и я использую взвешивание для борьбы с дисбалансом классов.
В этом случае я взвешенный мой образец так, что частота событий составляет 1: 4 (25%)
Моей модель настройка в следующем виде:Странная кривая ROC

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') 

Я получаю очень хорошие результаты с этим как вы можете видеть в матрице путаницы ниже

predicted 
true  0  1 
    0 815800 11391 
    1 13283 5503 
True negative rate - 29% 
Negative predictive value - 33% 

Однако, когда я рисую кривую ROC я получаю следующий сюжет

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") 
настройки

enter image description here

Я не могу понять, почему мой прогноз начинает выполнять только после 50% интервала принятия решения. У вас есть ключ или какой-либо предыдущий опыт?

ответ

-1

Обычно мы указываем положительную скорость True и False положительную скорость в кривой ROC ... но у вас есть ИСТИННЫЙ отрицательный и ложный отрицательный. Может быть, поэтому.

+0

Ну, это действительно неважно, если я поменяю классы, не так ли? У меня такая же история, если я рисую кривую для другого класса ... – MiksL

Смежные вопросы