反 ROC-AUC 值?

Inverse ROC-AUC value?

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

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

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

 1-0.28= 0.72

并将其报告为 AUC?正确吗?

您的直觉没有错:如果二元分类器的性能确实比随机分类器差(即 AUC < 0.5),一个有效的策略是简单地反转其预测,即报告一个每当分类器预测 1 时为 0,反之亦然);来自相关的Wikipedia entry(重点添加):

The diagonal divides the ROC space. Points above the diagonal represent good classification results (better than random); points below the line represent bad results (worse than random). Note that the output of a consistently bad predictor could simply be inverted to obtain a good predictor.

然而,对于这个倒置分类器,形式上正确的 AUC 将首先反转模型的个体概率预测 prob

prob_invert = 1 - prob

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

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