学会分类是凸显人类智慧的技能之一. 如何使得机器也具备分类能力, 这便是时下机器学习的内容之一. 垃圾邮件识别, 动植物种类判断都属于分类任务. 常见的机器学习分类算法有朴素贝叶斯, 支持向量机, 决策树, 随机森林等. 如何定量地去度量一个算法的好坏呢? 为此, 我们需要引入一些分类的评价指标. 常见的评价指标有: 准确率, 精准率, 召回率, 灵敏度, 特异度,F1-score, AUC等. 下面以二分类为例:

阳性(客观)

阴性(客观)

阳性(预测)

TP(真阳性)

FP(假阳性)

阴性(预测)

FN(假阴性)

TN(真阴性)

表格中的数字表示数量, 记NLP评分模型 nlp评价指标_召回率为总体, NLP评分模型 nlp评价指标_NLP评分模型_02

准确率Accuracy
预测正确的样本在总体中的占比. 这是最常用的分类评价指标之一. 但是它存在很多局限性,只关注了正确的样本.
NLP评分模型 nlp评价指标_召回率_03

精准率Precision
预测为阳性所有样本中真实为阳性的比例.
NLP评分模型 nlp评价指标_评价指标_04

召回率Recall(灵敏度)
所有真实阳性样本中预测为阳性的比例.
NLP评分模型 nlp评价指标_多分类_05

特异Specificity
所有真实阴性样本中预测为阴性的比例.
NLP评分模型 nlp评价指标_NLP评分模型_06

PR曲线
PR曲线是纵坐标为Precision, 横坐标为Recall的一条曲线. 它的绘制过程如下:

样本

真实类别

分数

样本

真实类别

样本

1

p

0.9

11

p

0.4

2

p

0.8

12

n

0.39

3

n

0.7

13

p

0.38

4

p

0.6

14

n

0.37

5

p

0.55

15

n

0.36

6

p

0.54

16

n

0.35

7

n

0.53

17

p

0.34

8

n

0.52

18

n

0.33

9

p

0.51

19

p

0.3

10

n

0.505

20

n

0.1

p表示正例(阳性), n表示负例(阴性).

取一组阈值, 依次取一个阈值NLP评分模型 nlp评价指标_机器学习_07, 如果分数NLP评分模型 nlp评价指标_NLP评分模型_08, 则认为该样本为正例, 反之为负例, 从而计算出对应的Pre和Re, 这样便可以获得一组数对NLP评分模型 nlp评价指标_机器学习_09. 根据这一组数对画出的曲线就是PR曲线.

NLP评分模型 nlp评价指标_召回率_10


F1-score

PR曲线判断模型不够定量,我们有更常用的F1值:

NLP评分模型 nlp评价指标_评价指标_11

可以看到F1值就是P和R值的调和平均值的2倍。

上述公式只是在二分类中,我们可以轻易扩展到多分类中。多分类中我们可以使用OneVsRest的策略,判断第NLP评分模型 nlp评价指标_机器学习_12类的分类时,把不属于第NLP评分模型 nlp评价指标_机器学习_12类的看做另一类,就能对每一类都算出一个NLP评分模型 nlp评价指标_评价指标_14值了。使用宏平均(Macro)或者微平均(Micro)来考量多分类的效果。这两者方式计算出的结果有差异.
NLP评分模型 nlp评价指标_机器学习_15

ROC曲线

ROC曲线的全称是“受试者曲线”,与PR曲线类似。它相比PR曲线能够在样本不均衡的条件下给出更加合理的结果。先看一下ROC的纵轴和横轴:纵轴是TPR,横轴是FPR,对应的计算方式是:

NLP评分模型 nlp评价指标_多分类_16

ROC的绘制和PR曲线类似, 取一些阈值, 根据阈值计算出TPR和FPR, 阈值取的越多, 曲线越光滑.

NLP评分模型 nlp评价指标_机器学习_17

NLP评分模型 nlp评价指标_多分类_18


ROC曲线落在[0,1]x[0,1]单位正方形区域中. 越靠近(0,1)表示表示的模型越好, 如何模型A的ROC曲线包住了模型B的ROC曲线, 说明模型A更好.

AUC值
AUC值就是ROC下方的面积. 值越大, 模型越好.