7

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 个截止点的性能指标,如准确性、MCC、灵敏度、特异性等。

现在,我想绘制 ROC 曲线并获得 ROC 曲线下的面积,看看性能有多好。R 中的大多数包(如 ROCR、pROC)都需要预测和标签,但我有敏感性(TPR)和特异性(1-FPR)。

如果截止方法正确或可靠地产生ROC曲线,有人可以建议我吗?您知道使用 TPR 和 FPR 获得 ROC 曲线和曲线下面积的任何方法吗?

我还尝试使用以下命令来训练随机森林。这样,预测是连续的,并且可以被 R 中的包所接受ROCRpROC但是,我不确定这是否是正确的做法。有人可以向我推荐这种方法吗?

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

感谢您花时间阅读我的问题!我为此花了很长时间冲浪。感谢您的建议/建议。

4

1 回答 1

15

你为什么不输出类概率?这样,您就可以对预测进行排名,并且可以直接将其输入到任何 ROC 包中。

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

请注意,要使用 randomForest 作为分类工具,labels必须是因子向量。

于 2012-09-18T12:16:36.887 回答