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

person Community    schedule 14.11.2013    source источник


Ответы (1)


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

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


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

person cbeleites unhappy with SX    schedule 14.11.2013