我在R平台中使用randomForest
包进行分类任务。
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个截止点的准确度,MCC,灵敏度,特异性等性能指标。
现在,我想绘制ROC曲线并获得ROC曲线下的面积,以了解性能有多好。 R中的大多数包(如ROCR,pROC)需要预测和标签,但我有敏感性(TPR)和特异性(1-FPR)。
任何人都可以建议我,如果截止方法是正确的还是可靠的,以产生ROC曲线? 你知道如何使用TPR和FPR获得ROC曲线和曲线下面积吗?
我还尝试使用以下命令训练随机森林。这样预测是连续的,并且在R中的ROCR
和pROC
包中是可以接受的。但是,我不确定这是否是正确的方法。任何人都可以向我推荐这种方法吗?
rf_object <- randomForest(data_matrix, label_vector)
pred <- predict(rf_object, test_data_matrix)
感谢您抽出时间阅读我的问题!我花了很长时间冲浪。感谢您的建议/意见。
答案 0 :(得分:13)
为什么不输出课程概率?这样,您就可以对预测进行排名,并且可以直接将其输入到任何ROC包中。
m = randomForest(data_matrix, labels)
predict(m,newdata_matrix,type='prob')
请注意,要将randomForest用作分类工具,labels
必须是因子的向量。