NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

数据集探索

——机器学习之类别不平衡问题

1 各种评估指标

评估指标 Evaluation metrics 可以说明模型的性能,辨别模型的结果。

我们建立一个模型后,计算指标,从指标获取反馈,再继续改进模型,直到达到理想的准确度。在预测之前检查模型的准确度至关重要,而不应该建立一个模型后,就直接将模型应用到看不见的数据上。
接下来介绍几种回归和分类常用的评估方法。

1.1、回归

回归问题的标记 yi 一般都是实值,不能通过是否相等进行评估。一般是通过衡量预测值 f(xi) 和真实值 yi 之间的距离。常用的评价指标有均方误差等。

和方误差(sum square error, SSE)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

平均绝对误差(mean absolute error, MAE)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

均方误差(mean square error, MSE)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

均方根误差(root mean square error, RMSE)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

平均绝对百分比误差(mean absolute percentage error, MAPE)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

平均平方百分比误差(mean square percentage error, MASE)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

决定系数R2

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念

  • 数学理解:分母理解为原始数据的离散程度,分子为预测数据和原始数据的误差,两者相除可以消除原始数据离散程度的影响。
  • 理论上取值(−∞,1](−∞,1],正常取值范围为[0, 1]
  • 越接近1,模型对数据拟合的越好。
  • 越接近0,表明模型拟合的越差。
  • 缺点:
  • 数据集的样本越大,R2越大。不同数据集的模型结果比较会有一定的误差。

1.2、分类

混淆矩阵

混淆矩阵是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法。下面给出二分类的混淆矩阵

Predicted as Positive Predicted as Negative
Labeled as Positive True Positive(TP) False Negative(FN)
Labeled as Negative False Positive(FP) True Negative(TN)

如上表,可以将结果分为四类:

  • 真正例(True Positive, TP):真实类别为正例,预测类别为正例;
  • 假负例(False Negative, FN):真实类别为正例,预测类别为负例;
  • 假正例(False Positive, FP):真实类别为负例,预测类别为正例 ;
  • 真负例(True Negative, TN):真实类别为负例,预测类别为负例;

进一步可以推出这些指标:

  • 真正率(True Positive Rate, TPR),又名灵敏度(Sensitivity):被预测为正的正样本数 / 正样本实际数,即:
    TPR=TP/(TP+FN) TPR=TP/(TP+FN)
  • 假负率(False Negative Rate, FNR):被预测为负的正样本数/正样本实际数,即:
    TNR=FN/(TP+FN) TNR=FN/(TP+FN)
  • 假正率(False Positive Rate, FPR):被预测为正的负样本数/负样本实际数,即:
    FPR=FP/(FP+TN) FPR=FP/(FP+TN)
  • 真负率(True Negative Rate, TNR),特异度(Specificity):被预测为负的负样本数/负样本实际数,即:
    TNR=TN/(FP+TN) TNR=TN/(FP+TN)
    进一步,由混淆矩阵可以计算以下评价指标:
  • 准确率(Accuracy):分类正确的样本数/所有样本数量,即:
    ACC=(TP+TN)/(TP+FN+FP+TN) ACC=(TP+TN)/(TP+FN+FP+TN)
  • 平均准确率(Average per-class accuracy):每个类别下的准确率的算术平均,即:
    AveAcc=(TP/(TP+FN)+TN/(TN+FP))/2 Ave_Acc=(TP/(TP+FN)+TN/(TN+FP))/2
  • 错误率:分类错误的样本/所有样本的数量,即:
    Error=(FN+FP)/(TP+FN+FP+TN) Error=(FN+FP)/(TP+FN+FP+TN)
精确率和召回率
  • 精确率,又称查准率(Precision):正样本的预测数/被预测为正样本的数量(注意:精确率和准确率不同),即:
    P=TP/(TP+FP) P=TP/(TP+FP) 挑出的西瓜中有多少比例是好瓜
  • 召回率(Recall)又称查全率:分类正确的正样本个数占正样本个数的比例,即:
    R=TPTP+FNR=TPTP+FN所有好瓜中有多少比例被挑出来

若要让查准率比较高,则只挑最有把握的瓜,则难免会漏掉不少好瓜,查全率较低;若要查全率比较高,则通过增加选瓜的数量来实现,若全部瓜都参选,则查全率最高,此时,查准率较低;

应用:在推荐系统中,为了少打扰用户,则查准率比较高;在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,则查全率比较高。

F1-Score

在说这个之前,先说一下调和平均值:总体统计量的倒数的算术平均数的倒数
F1度量的一般形式——Fβ能够表达对查全率和查准率不同的偏好:
NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念
其中,β>1时,查全率更有影响;β=1时,退化为标准的F1;β<1时,查准率更有影响。
F1值的一般形式为查准率和查全率的调和均值。
2/F1=1/P+1/R

ROC曲线

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念
ROC曲线常用于二分类问题中的模型比较,主要表现为一种真正例率 (TPR) 和假正例率 (FPR) 的权衡。

具体方法是在不同的分类阈值 (threshold) 设定下分别以TPR和FPR为纵、横轴作图。由ROC曲线的两个指标,TPR=TP/P=TP/(TP+FN)TPR=TP/P=TP/(TP+FN)FPR=FP/N=FP/(FP+TN)FPR=FP/N=FP/(FP+TN) 可以看出:

当一个样本被分类器判为正例,若其本身是正例,则TPR增加;若其本身是负例,则FPR增加,因此ROC曲线可以看作是随着阈值的不断移动,所有样本中正例与负例之间的“对抗”。

曲线越靠近左上角,意味着越多的正例优先于负例,模型的整体表现也就越好。

AUC曲线(Area Under the Curve)

NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念
对不同的ROC曲线进行比较的一个指标是曲线下的面积(Area Under Curve,AUC),曲线下面积(AUC)是评估中使用最广泛的指标之一。 它用于二分类问题。分类器的AUC等价于分类器随机选择正样本高于随机选择负样本的概率。 在定义AUC之前,让我们理解两个基本术语:

AUC(Area Under Curve)的值为ROC曲线下面的面积,若如上所述模型十分准确,则AUC为1。

但现实生活中尤其是工业界不会有如此完美的模型,一般AUC均在0.5到1之间,AUC越高,模型的区分能力越好

若AUC=0.5,即与上图中虚线重合,表示模型的区分能力与 随机猜测 没有差别。若AUC真的小于0.5,请检查一下是不是好坏标签标反了,或者是模型真的很差。

PR (Precision Recall) 曲线

PR曲线展示的是Precision vs Recall的曲线,PR曲线与ROC曲线的相同点是都采用了TPR (Recall),都可以用AUC来衡量分类器的效果。不同点是ROC曲线使用了FPR,而PR曲线使用了Precision,因此PR曲线的两个指标都聚焦于正例。类别不平衡问题中由于主要关心正例,所以在此情况下PR曲线被广泛认为优于ROC曲线。

PR曲线的绘制与ROC曲线类似,PR曲线的AUC面积计算公式为:
NLP系列——(1)数据探索-召回率、准确率、ROC曲线、AUC、PR曲线等概念
参考
机器学习之类别不平衡问题 (1) —— 各种评估指标
机器学习之类别不平衡问题 (2) —— ROC和PR曲线
机器学习之类别不平衡问题 (3) —— 采样方法