2013-11-14 5 views
3

Я пытаюсь построить кривую ROC случайной классификации лесов. Плоттинг работает, но я думаю, что я рисую неправильные данные, так как итоговый график имеет только одну точку (точность).Нанесение кривой ROC из произвольной классификации леса

Это код, я использую:

set.seed(55) 
data.controls <- cforest_unbiased(ntree=100, mtry=3) 
data.rf <- cforest(type ~ ., data = dataset ,controls=data.controls) 
pred <- predict(data.rf, type="response") 
preds <- prediction(as.numeric(pred), dataset$type) 
    perf <- performance(preds,"tpr","fpr") 
    performance(preds,"auc")@y.values 
    confusionMatrix(pred, dataset$type) 

plot(perf,col='red',lwd=3) 
abline(a=0,b=1,lwd=2,lty=2,col="gray") 

ответ

2

Чтобы построить приемник работает кривой вам нужно передать непрерывный выход классификатора, например, задние вероятности. То есть, вам нужно predict (data.rf, newdata, type = "prob").

predict Ввод с type = "response" уже дает вам «упрочненный» коэффициент как выход. Таким образом, ваша рабочая точка уже неявно исправлена. В отношении этого ваш сюжет правилен.


примечание стороны: в предсказании мешков случайных лесов будет сильно overoptimistic!

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