Roc-кривая для классификации из randomForest

Я использую randomForest пакет в платформе R для задачи классификации.

rf_object<-randomForest(data_matrix, label_factor, cutoff=c(k,1-k))

где k колеблется от 0,1 до 0,9.

pred <- predict(rf_object,test_data_matrix)

у меня есть выход из классификатора случайного леса и сравнил его с этикетки. Так что у меня показатели как точность, МХК, чувствительность, специфичность и т. д. по 9 очков отсечки.

теперь я хочу построить кривую ROC и получить область под кривой ROC, чтобы увидеть, насколько хороша производительность. Большинство пакеты в R (например, ROCR, pROC) требуют прогнозирования и меток, но у меня есть чувствительность (TPR) и специфичность (1-FPR).

может ли кто-нибудь предложить мне, если метод среза правильный или надежный для получения кривой ROC? Знаете ли вы, как получить кривую ROC и область под кривой с помощью TPR и FPR?

Я также попытался использовать следующую команду для обучения случайному лесу. Таким образом, предсказания были непрерывными и приемлемыми для ROCR и pROC пакеты в R. Но, I не уверен, что это правильный способ. Может ли кто-нибудь предложить мне этот метод?

rf_object <- randomForest(data_matrix, label_vector)
pred <- predict(rf_object, test_data_matrix)

Спасибо за ваше время, читая мою проблему! Я провел долгий серфинг на это времени. Спасибо за ваше предложение / совет.

1 ответов


почему вы не выводите вероятности классов ? Таким образом, у вас есть рейтинг ваших прогнозов, и вы можете напрямую ввести его в любой пакет ROC.

m = randomForest(data_matrix, labels)
predict(m,newdata_matrix,type='prob')

обратите внимание, что для использования randomForest в качестве инструмента классификации,labels должен быть вектор фактора.