NLP评价性能指标

基于综述Survey on deep learning with class imbalance,以及网上找到的一些博客,总结一下NLP任务中的常用性能指标,主要以分类任务为准。

目录

混淆矩阵

对于二分类问题,标签和模型的预测结果经过组合有四种情况,将四种情况列在一个矩阵中就是混淆矩阵。

对于多分类问题,标签和模型的预测结果经过组合有n2种,情况,将其列在一个矩阵中就是混淆矩阵。以下主要以二分类的混淆矩阵为例。

NLP评价性能指标

FP对应第一型错误:标签是负类,但是预测为正类,可能是噪音或是故意的扰动干扰了模型

FN对应第二型错误:标签是正类,但是预测为负类,可能是模型学到的特征不足

准确率(Accuracy)和错误率(Error Rate)

NLP评价性能指标

正确率和错误率是在评估分类结果的时候最常用的指标。但是当处理类不平衡问题时这两个指标都是不充分的,因为实验结果由数据多的类所决定,也就是负类。当数据集中正类所占的比例只有1%时,一个把所有数据归为负类的分类器可以到达99%的准确率。当然,这样一个模型是没有实际价值的。

正确率(Precision)、召回率(Recall)、选择率(Selectivity)

NLP评价性能指标

  • 正确率Precision衡量在标记为正类的样本中确实是正类的比例。正确率对于类不平衡数据敏感因为它考虑到了负样本中被不正确地标为正类的数量(FP)。但是只用正确率一个指标是不充分的,因为它完全没有考虑正样本中被不正确地标为负类的数量(FN)。

 

  • 召回率Recall也叫做TPRTure Positive Rate),用于衡量正类样本中被模型正确标记为正类的比例。召回率不会受不平衡影响因为它只取决于正类。召回率没有考虑到负样本中被标记为正样本的数量,这在处理有许多负样本的类不平衡数据时会出现问题。

正确率和召回率之间是一个权衡,性能指标的重要性随着问题不同而变化。正确率以模型标记的正类为底,召回率以实际标签标记的正类为底。

  • 选择率(Selectivity)也叫做TNR(True Negative Rate),衡量负类样本中被模型正确标记为负类的比例。相当于负类的召回率。

F1值(F-Measure)、G-Mean、Balanced Accuracy

NLP评价性能指标

  • F-Measure,也叫做F1值,用调和平均数结合了正确率和召回率,系数β用于调整正确率和召回率的相对重要性。β一般取1。
  • G-Mean,用平方根结合了TPR和TNR来衡量性能。
  • Balanced Accuracy也结合TPR和TNR来计算指标以使得模型对于数据少的类更加敏感。

ROC、AUC、PR曲线

ROC

ROC(receiver operating characteristics)曲线,它绘制了TPR(召回率)和FPR(False positive rate,FPR=FP/(FP+TN))之间的关系,每个点的横坐标是FPR,纵坐标是TPR,从而创建了一个描绘被正确分类的正样本(TP)和被错误分类的负样本(FP)之间的权衡的可视化图像。

对于二值分类问题,实例的值往往是连续值,我们通过设定一个阈值,将实例分类到正类或者负类(比如大于阈值划分为正类)。因此我们可以改变阈值,根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve。 因此对于产生连续概率的模型,阈值可用于在ROC空间创建一系列的点来形成ROC曲线。

AUC

AUC(the area under the ROC curve)常用来比较模型之间的性能。AUC的值就是ROC曲线下方的那部分面积的大小,通常AUC的值介于0.5到1.0之间,较大的AUC代表了较好的性能。 加权的AUC指标,用于在计算面积的时候将成本偏好加入到考虑中。

PR曲线

PR曲线(Precision-Recall),ROC曲线可能会在高度偏斜的数据集上显示过于乐观的结果,在这种情况下,应该用Precision-Recall(PR)曲线来代替ROC曲线。P指的是正确率,R指的是召回率,一般情况下把召回率设为横坐标,正确率设为纵坐标。

通过选择不同的阈值进行不同的计算,一条模型对应多个阈值得到一条曲线。性能通过曲线下方的面积大小进行比较,更常用的是平衡点F1,平衡点是P=R时的取值。刚好就是β为1时的F1值。

微观与宏观指标

在n个二分类混淆矩阵上综合考虑正确率和召回率

宏macro-F1:在各混淆矩阵上分别计算正确率和召回率,再计算平均值

NLP评价性能指标

 

微micro-F1:先将各混淆矩阵的对应元素取平均,再基于这些平均值计算F1值。

NLP评价性能指标

 

 NLP评价性能指标

参考文献和博客

综述:Survey on deep learning with class imbalance

博客:

https://blog.csdn.net/bluesliuf/article/details/88830671

https://blog.csdn.net/lu839684437/article/details/71610062

NLP评价性能指标

上一篇:C# 常用函数和方法集汇总


下一篇:C# checked运算符