反 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