PR-AUC and ROC-AUC

PR-AUC 和 ROC-AUC 机器学习的重要评价指标,常用于二元决策问题。

Define of PR and ROC

predicted positivepredicted negative
actual positiveTPFN
actual negativeFPTN

PR

P 为 precision,预测中的正例与所有预测之间的比值,表示正例在预测中的精度;

R 为 recall,预测中的正例与数据集中所有正例之间的比值,表示正例的查全率;

Nature of RP Curve

作 PR 图时以 P 为 y 轴,R 为 x 轴

一般 PR 曲线在 x 大于某一数值 $a$ 后,表现为减函数。因为在数据集不变且算法性能不改变情况下,要增大查全率(x 轴),需要增大预测总数量,此时所预测的反列会变多,导致正例在预测中的精度(y轴)下降

假设某算法需要达到 $a$ 的查全率时,需要的预测总数至少是 $A$ (只有预测总数增多,查全率才可能增大)

  • 当预测总数小于 $A$ 时,由于预测总数较少,随着预测总数的增加,预测正例的增加 $TP_{rate}$ 大于一定的预测反例的增加 $FP_{rate}$,此时可能出现 P 增大,表现为增函数
  • 当预测总数小于 $A$ 时,随着预测总数的增加,有可能因为算法性能差,预测正例的增加 $TP_{rate}$ 不大于一定的预测反例增加 $FP_{rate}$ ,导致 P 减少,表现为减函数
  • 当预测总数大于 $A$ 后,随着预测总数的增加,预测正例数量 $TP$ 趋于稳定,预测反例 $FP$ 增多,导致 P 减小,表现为减函数

RP 曲线为预测正例准确度和预测正例查全率之间的映射关系,当预测总数足够大时,查全率可达到1,而此时预测反例很多,预测正例准确度趋于0,即曲线收敛于点 $(1,0)$

AUC

area under curve。当算法在较小的预测总数时能达到较高的查全率和正例准确度时,表示算法的性能好。此时 PR 曲线趋于右上方,即曲线的性能越好,则此时应该尽可能”右凸“,曲线下面积尽可能大。

故 PR-AUC 越大,表示算法性能越好。

ROC

TPR 为 true positive rate,预测中的正例与数据集中所有正例之间的比值,可表示正例查全率;

FPR 为 false positive rate,预测中的反例与数据集中所有反例之间的比值,表示反例的查全率;

可见 R = TPR。

Nature of ROC Curve

作 ROC 图时以 TPR 为 y 轴,FPR 为 x 轴。在 ROC 图中作直线 $x=a$ ,该直线与某算法的 ROC 曲线焦点 $(a,y(a))$ 表达该算法在反例查全率达到 $a$ 时,能有多大的正例查全率;作水平直线同理。

一般来说,算法随着其反例查全率增大( x 增大),其正例查全率也增大( y 增大),算法的ROC曲线为增函数。因为数据集不变情况下,一般算法所预测的总数变多,预测的正例和反例都会变多

  • 若预测的总数变多,而正例数不变,反例数变多,ROC 为水平,则要么是该算法已经达到较高的正例查全率(曲线位于右上方),要么表示该算法性能较差,无法提高正例查全率
  • 若预测的总数变多,反例数不增多,而正例增多,表示预测总数还不足够多,未能达到算法的预测能力容量,此时曲线往往应该处于 x 较小的地方,且比较陡峭
  • 随着预测总数量的变多,算法不应存在预测正例数减少或预测反列数减少的情况。

AUC

当反例查全率较小,且正例查全率较大时,算法的性能较好。此时 ROC 曲线应该趋于左上方,尽可能”左凸”,曲线下面积变大。

故 ROC-AUC 越大,表示算法性能越好。

Relationship Between PR and ROC

根据论文 The Relationship Between Precision-Recall and ROC Curves ,有以下结论:

  • 对于给定 positive 和 negative 样本的数据集,若 Recall 不等于 0,则 ROC 空间和 PR 空间上存在唯一对应的两条曲线,这两条曲线也唯一确定了一个 confusion matrices
  • ROC 空间上某曲线完全大于等于另一条曲线当且仅当该曲线在 PR 空间的对应曲线也完全大于等于另一条曲线(a curve dominates in ROC space if and only if it dominates in PR space)
  • 一个算法优化 ROC-AUC 不等于优化了 PR-AUC

Example

已知数据集为 1000,000 份文档中,其中与关键词目标匹配的文档有 100 份。现有两个method

method 1: 检索出 100 份文档,其中有 90 份匹配正确,其余匹配错误

method 2: 检索出 2000 份文档,其中有 90 份匹配正确,其余匹配错误

PR and ROC for method 1

predicted positivepredicted negative
actual positive (100)TP = 90FN = 10
actual negative (999,900)FP = 10TN = 999,890

PR for method 1:

P = 90 / (90 + 10) = 0.9

R = 90 / (90 + 10) = 0.9

ROC for method 1:

TPR = 90 / (90 + 10) =0.9

FPR = 10 / (10 + 999,980) = 0.00001

PR and ROC for method 2

predicted positivepredicted negative
actual positive (100)TP = 90FN = 10
actual negative (999,900)FP = 1910TN = 998,080

PR for method 2:

P = 90 / (90 + 1910) = 0.045

R = 90 / (90 + 10) = 0.9

ROC for method 2:

TPR = 90 / (90 + 10) = 0.9

FPR = 1910 / (1910 + 998,080) = 0.00191

Compare PR and ROC

PRmethod 1method 2diff
P90 / (90 + 10) = 0.990 / (90 + 1910) = 0.0450.855
R90 / (90 + 10) = 0.990 / (90 + 10) = 0.90.0
ROCmethod 1method 2diff
TPR90 / (90 + 10) =0.990 / (90 + 10) = 0.90.0
FPR10 / (10 + 999,980) = 0.000011910 / (1910 + 998,080) = 0.001910.00190

可见 PR 上 P 的差异大于 ROC 上 FPR 的差异。因为前者只考虑了 method 所预测的 positive (TP + FP),而后者考虑了数据集中的 negative (FP + TN),由于数据集中的 negative 很大,导致 FPR 的差异很小。

所以当数据集中的 negative 很大时(数据失衡),ROC 差异较小,PR 更能表现算法之间的差异。

Typically, if true negatives are not meaningful to the problem or negative examples just dwarf the number of positives, precision-recall is typically going to be more useful

Clearly, the PR is much better in illustrating the differences of the algorithms in the case where there are a lot more negative examples than the positive examples.

Reference

0%