反 ROC-AUC 值?

Posted

技术标签:

【中文标题】反 ROC-AUC 值?【英文标题】:Inverse ROC-AUC value? 【发布时间】:2019-06-09 06:19:12 【问题描述】:

我有一个分类问题,我需要在给定数据的情况下预测 (0,1) 的类别。基本上,我有一个包含 300 多个特征(包括预测的目标值)和 2000 多行(样本)的数据集。我应用了不同的分类器如下:

 1. DecisionTreeClassifier()
 2. RandomForestClassifier()
 3. GradientBoostingClassifier()
 4. KNeighborsClassifier()

除了 0.28 左右的随机森林外,几乎所有分类器都给了我相似的结果,大约为 0.50 AUC 值。我想知道如果我反转 RandomForest 结果是否正确,例如:

 1-0.28= 0.72

并将其报告为 AUC?对吗?

【问题讨论】:

ROC 是指绘图(接收器操作特征图/曲线),AUC 是分类器的曲线下面积。您获得的 AUC 值,例如0.50 或 0.28 是报告的正确值。 0.5 是 2 类分类的更改级别,例如您的案例。 【参考方案1】:

您的直觉没有错:如果二元分类器的性能确实比随机分类器差(即 AUC 反转其预测,即每当分类器预测时报告 0 a 1,反之亦然);来自相关的Wikipedia entry(强调添加):

对角线划分 ROC 空间。对角线上方的点代表良好的分类结果(优于随机);线下的点代表不好的结果(比随机更差)。请注意,可以简单地反转一贯错误的预测器的输出以获得良好的预测器

不过,对于这个倒置分类器,正式正确的 AUC 应该是首先倒置模型的单个概率预测 prob

prob_invert = 1 - prob

然后使用这些预测 prob_invert 计算 AUC(可以说,该过程应该与您描述的简单地从 1 中减去 AUC 的天真方法给出类似的结果,但我不确定确切的结果 - 另请参阅这个Quora answer)。

不用说,所有这一切都是基于您的整个过程是正确的假设,即您没有任何建模或编码错误(构建一个比随机差的分类器并不是一件容易的事)。

【讨论】:

以上是关于反 ROC-AUC 值?的主要内容,如果未能解决你的问题,请参考以下文章

常用的评价指标:accuracy、precision、recall、f1-score、ROC-AUC、PR-AUC

无法从朴素贝叶斯分类器生成 ROC-AUC 曲线

ROC-AUC 与 PR-AUC 的区别与联系

LinearSVC 和 roc_auc_score() 用于多类问题

机器学习模型的评价指标和方法

辍学和批量标准化 - 层的顺序重要吗?