前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习-基础知识 - PR、ROC曲线与AUC

机器学习-基础知识 - PR、ROC曲线与AUC

作者头像
为为为什么
发布2022-08-05 09:34:07
7800
发布2022-08-05 09:34:07
举报
文章被收录于专栏:又见苍岚又见苍岚

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曲线:

PR曲线
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曲线
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的分类器,只需要对输出取反你就得到了完美的分类器。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年2月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 预备知识
  • 示例数据
  • PR曲线
    • 曲线的由来
      • 绘制示例数据的PR曲线
      • ROC曲线
        • 绘制示例数据的ROC曲线
        • AUC
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档