使用准确性以外的指标进行 OOB 评估,例如 F1 或 AUC

Posted

技术标签:

【中文标题】使用准确性以外的指标进行 OOB 评估,例如 F1 或 AUC【英文标题】:OOB evaluation with metrics other than accuracy, e.g., F1 or AUC 【发布时间】:2020-12-31 09:35:49 【问题描述】:

我在不平衡的数据集上训练随机森林,准确度不能提供信息。我想避免交叉验证,而是使用袋外 (OOB) 评估。是否可以在 sklearn(或一般在 python 中)评估袋外 (OOB) F1 或 AUC 而不是 OOB 准确性?

我没有在这些页面上找到方法:

https://scikit-learn.org/stable/auto_examples/ensemble/plot_ensemble_oob.html#sphx-glr-auto-examples-ensemble-plot-ensemble-oob-py https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

或者我应该只计算 oob_decision_function_ 中的平均预测(或分类的多数票)的 f1 和 AUC?

【问题讨论】:

为什么不在训练之前拆分数据的另一个子集并进行预测并注意结果如何? 你的意思是简单的训练-测试拆分吗? 【参考方案1】:

从the source可以看到,准确率计算是硬编码的,所以你不能通过设置一些参数来获得另一个分数。

但是,正如您所说,oob 预测是可用的,因此自己进行最终计算并不困难。

【讨论】:

以上是关于使用准确性以外的指标进行 OOB 评估,例如 F1 或 AUC的主要内容,如果未能解决你的问题,请参考以下文章

分类模型评估指标

数据分析-评估指标(F1score和ROC曲线)

Lesson 5.2 混淆矩阵与 F1-Score

机器学习之分类模型评估指标及sklearn代码实现

我将如何确定我应该使用哪个评估指标来进行机器学习中的分类问题陈述?

牢记分类指标:准确率、精确率、召回率、F1 score以及ROC