用于随机森林分类的​​ ROC 曲线

标签 r random-forest roc

我在 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)

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

最佳答案

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

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

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

关于用于随机森林分类的​​ ROC 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370670/

相关文章:

r - 创建 ID 从 1 开始的列,并在另一列中的值在 R 中发生变化时递增

r - 通过具有不同 pch 值(以列为单位)的条形图可视化数据

r - 黑客机器学习代码中的 strsplit(unitspec, "") 错误

java - 快速随机森林算法实现

python - 该 ROC 曲线图看起来很奇怪(sklearn SVC)

machine-learning - 如何解释不平衡数据中的高 AUC-ROC 和平庸的精确度和召回率?

r - 获取达到所需数量所需的天数

java - 我如何从 R 中提取 RandomForest 用于生产?

python - Scikit-learn,随机森林——每棵树包含多少个样本?

python - 可以在 scikit-learn 中使用预先计算的内核从 SVM 绘制 ROC 图吗?