本文最后更新于:2024年5月7日 下午
PR曲线与ROC曲线都是机器学习中性能评估的重要指标,本文主要讲这两个曲线。
预备知识
示例数据
样本编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
真实类别 |
P |
P |
P |
P |
P |
P |
N |
N |
N |
N |
预测-1
样本编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
预测为正样本 的概率 |
0.9 |
0.8 |
0.7 |
0.6 |
0.6 |
0.4 |
0.5 |
0.4 |
0.3 |
0.2 |
预测-2
样本编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
预测为正样本 的概率 |
0.8 |
0.7 |
0.7 |
0.8 |
0.7 |
0.4 |
0.6 |
0.3 |
0.3 |
0.1 |
PR曲线
含义:PR曲线中P为Precision(查准率),R为Recall(查全率)。以Recall为横坐标、Precision为纵坐标绘制的曲线即为PR曲线。有同学可能会问Precision、Recall不就是一个值么,怎么画出的曲线?
曲线的由来
事实上机器学习训练好的模型在对测试样本进行预测的时候,输出的原始结果是模型预测该样本为正样本的概率,而不是我们平时经常听到的Positive或Negative,而概率如何转化为机器学习的输出靠的是一个阈值,当概率大于阈值则判断其为正样本,反之为负样本。
而这个非常关键的阈值本身不是固定的,在阈值变化过程中模型对样本的预测类别也会相应发生变化,那么阈值不断变化导致模型Precision和Recall变化,将这些点连成线也就是PR曲线了。
绘制示例数据的PR曲线
为直观展示PR曲线绘制过程,根据示例数据绘制PR曲线(简便起见阈值选定为0.05-0.95,跨度0.1)。
阈值 |
预测-1 |
预测-2 |
0.05 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
4 |
0 |
0 |
Precision |
0.6 |
Recall |
1 |
Precision |
0.6 |
Recall |
1 |
0.15 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
3 |
1 |
0 |
Precision |
0.6 |
Recall |
1 |
Precision |
0.67 |
Recall |
1 |
0.25 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
3 |
1 |
0 |
6 |
3 |
1 |
0 |
Precision |
0.67 |
Recall |
1 |
Precision |
0.67 |
Recall |
1 |
0.35 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
2 |
2 |
0 |
6 |
1 |
3 |
0 |
Precision |
0.75 |
Recall |
1 |
Precision |
0.86 |
Recall |
1 |
0.45 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
1 |
3 |
1 |
5 |
1 |
3 |
1 |
Precision |
0.83 |
Recall |
0.83 |
Precision |
0.83 |
Recall |
0.83 |
0.55 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
0 |
4 |
1 |
5 |
1 |
3 |
1 |
Precision |
1 |
Recall |
0.83 |
Precision |
0.83 |
Recall |
0.83 |
0.65 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
3 |
0 |
4 |
3 |
5 |
0 |
4 |
1 |
Precision |
1 |
Recall |
0.5 |
Precision |
1 |
Recall |
0.83 |
0.75 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
2 |
0 |
4 |
4 |
2 |
0 |
4 |
4 |
Precision |
1 |
Recall |
0.33 |
Precision |
1 |
Recall |
0.33 |
0.85 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
1 |
0 |
4 |
5 |
0 |
0 |
4 |
6 |
Precision |
1 |
Recall |
0.17 |
Precision |
- |
Recall |
0 |
0.95 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
0 |
0 |
4 |
6 |
0 |
0 |
4 |
6 |
Precision |
- |
Recall |
0 |
Precision |
- |
Recall |
0 |
结果坐标
编号
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
|
预测-1 |
Recall |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.5 |
0.33 |
0.17 |
0 |
Precision |
0.6 |
0.6 |
0.67 |
0.75 |
0.83 |
1 |
1 |
1 |
1 |
- |
预测-2 |
Recall |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.83 |
0.33 |
0 |
0 |
Precision |
0.6 |
0.67 |
0.67 |
0.86 |
0.83 |
0.83 |
1 |
1 |
- |
- |
PR曲线:
-
如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,示例数据中根据PR曲线可以看到预测2优于预测1
-
至于有交叉的情况可以判断曲线下方的面积大小来判断,面积大的性能更好
-
平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好
参考性能评估之PR曲线与ROC曲线。
ROC曲线
ROC曲线英文’receiver operating characteristic curve’,直译为“接受者操作特性曲线”,又称为感受性曲线(sensitivity curve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。
ROC曲线是在门限阈值不断变化过程中以虚警概率(FPR)为横轴,击中概率(TPR)为纵轴绘制而成的曲线。
绘制示例数据的ROC曲线
为直观展示ROC曲线绘制过程,根据示例数据绘制ROC曲线(简便起见阈值选定为0.05-0.95,跨度0.1)。
阈值 |
预测-1 |
预测-2 |
0.05 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
4 |
0 |
0 |
FPR |
1 |
TPR |
1 |
FPR |
1 |
TPR |
1 |
0.15 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
3 |
1 |
0 |
FPR |
1 |
TPR |
1 |
FPR |
0.75 |
TPR |
1 |
0.25 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
3 |
1 |
0 |
6 |
3 |
1 |
0 |
FPR |
0.75 |
TPR |
1 |
FPR |
0.75 |
TPR |
1 |
0.35 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
2 |
2 |
0 |
6 |
1 |
3 |
0 |
FPR |
0.5 |
TPR |
1 |
FPR |
0.25 |
TPR |
1 |
0.45 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
1 |
3 |
1 |
5 |
1 |
3 |
1 |
FPR |
0.25 |
TPR |
0.83 |
FPR |
0.25 |
TPR |
0.83 |
0.55 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
0 |
4 |
1 |
5 |
1 |
3 |
1 |
FPR |
0 |
TPR |
0.83 |
FPR |
0.25 |
TPR |
0.83 |
0.65 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
3 |
0 |
4 |
3 |
5 |
0 |
4 |
1 |
FPR |
0 |
TPR |
0.5 |
FPR |
0 |
TPR |
0.83 |
0.75 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
2 |
0 |
4 |
4 |
2 |
0 |
4 |
4 |
FPR |
0 |
TPR |
0.33 |
FPR |
0 |
TPR |
0.33 |
0.85 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
1 |
0 |
4 |
5 |
0 |
0 |
4 |
6 |
FPR |
0 |
TPR |
0.17 |
FPR |
0 |
TPR |
0 |
0.95 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
0 |
0 |
4 |
6 |
0 |
0 |
4 |
6 |
FPR |
0 |
TPR |
0 |
FPR |
0 |
TPR |
0 |
结果坐标
编号
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
|
预测-1 |
FPR |
1 |
1 |
0.75 |
0.5 |
0.25 |
0 |
0 |
0 |
0 |
0 |
TPR |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.5 |
0.33 |
0.17 |
0 |
预测-2 |
FPR |
1 |
0.75 |
0.75 |
0.25 |
0.25 |
0.25 |
0 |
0 |
0 |
0 |
TPR |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.83 |
0.33 |
0 |
0 |
ROC曲线:
ROC曲线图中,坐标(0,0)代表的含义是虚警概率为0,既没有负样本被判定为正样本,同时召回率也为0,既没有正样本被判定为正样本 —— 也就是此处表示所有样本都判定为了负样本。这是由于阈值选择接近1,导致没有样本被划定到正样本区域内,并不说明模型不好,事实上所有的模型都会经过这一点;
同理,坐标(1,1)表示阈值接近0,所有样本均被判定为正;
坐标(0,1)意味着完美的分类器,在虚警为0的情况下正确判断了所有正样本,这也是我们机器学习人的毕生追求。因此ROC曲线越接近左上角,模型性能越好。
AUC
-
AUC是英文 Area under Curve的缩写,表示的是ROC曲线下的面积,也就是ROC曲线在[0,1]上的积分
-
这是用来评价模型分类器性能的指标,对不同模型来说,AUC越大表示分类性能越好
-
AUC取值范围为[0,1],有效果的分类器会大于0.5,效果差的会接近0.5
-
如果有人问为什么不是接近0的效果最差呢? 事实上如果你得到了AUC为0的分类器,只需要对输出取反你就得到了完美的分类器。
文章链接:
https://www.zywvvd.com/notes/study/machine-learning/basic-knowledge/PR-and-ROC/PR-and-ROC/