相关文章:
· 机器学习模型的性能度量

性能评价测度是用于评价分类模型“好坏”的一种量度。对于绝大多数了解分类问题的读者来讲,可能接触最多的一种性能评价测度就是分类准确率(Accuracy)。假设有一个具有mmm个样本的数据集D={(x1,y1),(x2,y2),⋯,(xm,ym)}D=\{(x_1, y_1), (x_2, y_2), \cdots, (x_m, y_m)\}D={(x1​,y1​),(x2​,y2​),⋯,(xm​,ym​)},其中yiy_iyi​是示例xix_ixi​的真实标记,则对于分类模型fff,其在该数据集上的分类准确率可由下式计算得到:
Accuracy(f;D)=1m∑i=1mI(f(xi)=yi)\text{Accuracy}(f;D)=\frac{1}{m}\sum_{i=1}^m\mathbb{I}(f(x_i)= y_i)Accuracy(f;D)=m1​i=1∑m​I(f(xi​)=yi​)

其中,I\mathbb{I}I为指示函数,当I\mathbb{I}I中等式成立时,其取值为1,而当等式不成立时,其取值为0。

从上式可以看出,所谓分类准确率,实际上就是分类模型在所有样本上所预测正确个体的占比统计量。在平衡的分类问题中,采用分类准确率评价模型的质量当然是毫无问题的,但若分类问题是不平衡的,这一测度将难以反映出分类模型的真实质量。不妨假设现有100个样本,其中有99个属于多数类,而另外1个来源于少数类,若存在两个分类模型f1f_1f1​和f2f_2f2​,其中前者将所有样本均判归多数类,即其分类精度为0.99,而后者则可正确预测少数类样本,但同时也误判了10个多数类样本,即其分类精度为0.90。那么,是否能根据分类准确率的大小,直接得出模型f1f_1f1​比f2f_2f2​质量更优的结论呢?显然是不能的,因为前者误判了全部的少数类样本,导致所训练的分类模型可能毫无价值,而后者虽然误判了一部分多数类样本,但正确预测了唯一的少数类样本,从而在不同类样本的分类精度上达到了近似平衡,而这种平衡可能是更有意义的。

既然在类别不平衡问题上,分类准确率不是一种可取的测度,那么,是否有更合适的性能度量指标呢?在此,首先需要为读者展示一张表格,即分类结果的混淆矩阵(Confusion Matrix),如下图所示。

在上图中,TP和TN分别表示原本就是正类/负类,也确实被预测为正类/负类的样本数量;FP及FN则分别表示样本的真实类标为负类/正类,但却被预测为正类/负类的样本数量。显然,TP+TN表示预测正确的样本数,而FP+FN则表示预测错误的样本数,TP+TN+FP+FN表示样本总数。进一步,分类准确率可由这4个变量直接计算得出:
Accuracy(f;D)=TP+TNTP+TN+FP+FN\text{Accuracy}(f;D)=\frac{TP+TN}{TP+TN+FP+FN}Accuracy(f;D)=TP+TN+FP+FNTP+TN​

此外,我们也可采用这4个变量计算出其他一些性能测度,如精度/查准率(Precision)、召回率/查全率/真正率(Recall, TPR)及真负率TNR等,这些指标可通过如下各式计算得到:
Precision=TPTP+FPRecall=TPR=TPTP+FNTNR=TNTN+FP\text{Precision}=\frac{TP}{TP+FP}\\\quad\\\text{Recall}=\text{TPR}=\frac{TP}{TP+FN}\\\quad\\\text{TNR}=\frac{TN}{TN+FP}Precision=TP+FPTP​Recall=TPR=TP+FNTP​TNR=TN+FPTN​

其中,TPR与TNR在医学领域中分别被称为敏感性(Sensitivity)与特异性(Specificity)测度。显然,精度/查准率与召回率/查全率是一对矛盾的度量指标。一般而言,当查准率高时,查全率往往较低,而当查全率高时,查准率又往往偏低。当然,最理想状况是二者的性能大致相当。为检测二者的平衡关系,可采用一种称为F-measure的性能评价测度,计算公式如下:
F1=2×Precision×RecallPrecision+Recall=2×TP样例总数+TP−TNF1=\frac{2\times\text{Precision}\times\text{Recall}}{\text{Precision}+\text{Recall}}=\frac{2\times TP}{\text{样例总数}+TP-TN}F1=Precision+Recall2×Precision×Recall​=样例总数+TP−TN2×TP​

另外,我们也注意到真正率TPR及真负率TNR事实上分别表示了正类与负类各自的分类精度,故可采用一种称为G-mean的测度来检测这二者的平衡关系,其计算公式如下:
G-mean=TPR×TNR\text{G-mean}=\sqrt{TPR\times TNR}G-mean=TPR×TNR​

显然,G-mean测度计算了两类样本预测精度的几何均值,若其中一个较大,而另一个较小,则G-mean测度值必然偏小,只有当二者均值较接近时,G-mean测度才可达到峰值。

前面的讨论仅考虑了二分类问题,而未考虑多分类问题。事实上,在多分类问题中,F-measure及G-mean测度只需通过简单转换即可使用。其中,在多分类问题中,F-measure测度被转换为了一个称为F-score的测度,其计算公式如下:
F-score=∑i=1MF1M\text{F-score}=\frac{\sum_{i=1}^MF1}{M}F-score=M∑i=1M​F1​

其中,MMM为类别个数。显然,F-score测度是将多分类问题转化为多个二分类问题,并在每一个二分类问题上分别计算F-measure测度,最后再求其均值而得。而在多分类问题上,G-mean测度也可通过下式计算得到:
G-mean=(∏i=1MAccuracy)1M\text{G-mean}=(\prod_{i=1}^M\text{Accuracy})^{\frac{1}{M}}G-mean=(i=1∏M​Accuracy)M1​

显然,在多分类问题上,G-mean测度仍然反映了各类样本分类精度的几何均值。

在类别不平衡学习任务中,F-measure及G-mean是较为常用的两种性能评价测度。那么,是不是就可以说它们是完全没有缺陷的了呢?答案当然是否定的。事实上,Batuwita和Palade在进行生物信息学研究时发现,上述测度并非尽善尽美。他们根据实际需要将不平衡分类问题分成了两大类:第1类是希望尽可能地提升TPR的值,而忽略TNR测度值的大小;第2类则希望在提升TPR值的同时,尽可能不大幅降低TNR测度的值。针对第2类需求,Batuwita和Palade提出了一种修正的G-mean测度:AGm测度,该测度的具体计算公式如下:
AGm={G-mean+TNR×Nn1+Nn,TPR>00,TPR=0\text{AGm}=\left\{ \begin{aligned} &\frac{\text{G-mean}+TNR\times N_n}{1+N_n} &, TPR>0\\ &0&, TPR=0 \\ \end{aligned} \right. AGm=⎩⎪⎨⎪⎧​​1+Nn​G-mean+TNR×Nn​​0​,TPR>0,TPR=0​

其中,NnN_nNn​表示多数类样本在全部样本中的占比。在类别不平衡学习问题中,另一种常用的性能评价测度是“受控者操纵特征曲线下的面积”(Area Underthe Receiver Pperating Characteristic curve, AUC)。所谓受控者操纵特征曲线(Receiver Operatingcharacteristic Curve, ROC),是根据每个样本的决策输出值进行“排序”而构成的曲线。众所周知,很多分类模型均可对样本产生实值或概率输出,如朴素贝叶斯分类器的后验概率、神经网络的决策输出值、集成分类器的投票比等。通常的做法是对这些输出值按大小关系进行排序,并找到一个对应的截断阈值,小于该阈值的属于一类,大于该阈值的属于另一类。在实际应用中,若截断阈值找得不合理可能会导致分类结果不理想,但它并不会影响到样本的排序关系。实际上,这种排序关系也可用于评价分类模型的性能。具体而言,ROC曲线是由每个样本的真正率TPR及假正率FPR所刻画的,其中假正率的计算公式如下:
FPR=FPTN+FPFPR=\frac{FP}{TN+FP}FPR=TN+FPFP​

ROC曲线的纵轴表示真正率,横轴表示假正率,曲线上的点从原点开始按照决策值从小到大排列而成。下图给出了一个ROC曲线的例子。

AUC测度为ROC曲线下的面积,如上图所示的阴影面积,实际上,它是由多个梯形的面积累加而成。对于一个完全随机猜测的分类模型而言,其ROC曲线应为连接原点至右上角顶点的一条直线段,其AUC测度值为0.5。而在样本完全可分状态下,即一类样本的排序均在另一类样本之前或之后,则其ROC曲线应是纵坐标取值为1,且与横轴完全平行的直线段,其AUC测度值为1。通常而言,在同一样本集上,若一个分类模型的AUC测度值越高,则表明该模型的质量越好。

此外,特别需要说明的是,ROC曲线在设计之初仅考虑了二分类问题,对于多分类问题,可以将每类均视作正类刻画一条ROC曲线,取各条ROC曲线的AUC测度均值作为最终的AUC测度值即可,通常将该测度称为MAUC测度。在类别不平衡学习问题中,F-measure, G-mean及AUC是最为常用的三种性能评价测度。

深入理解机器学习——类别不平衡学习(Imbalanced Learning):性能评价测度相关推荐

  1. 深入理解机器学习——类别不平衡学习(Imbalanced Learning):基础知识

    分类目录:<深入理解机器学习>总目录 传统的分类技术通常存在一个致命缺陷,即当其在样本分布不均衡的数据上训练时(如:采用99个健康人和1个病人的体检指标创建疾病诊断模型或99990个正常数 ...

  2. 深入理解机器学习——类别不平衡学习(Imbalanced Learning):影响因素

    从<类别不平衡分布对传统分类器性能的影响机理>文章可以看出,类别不平衡分布是会对各种传统分类算法的性能产生负面影响的.然而,这种负面影响的大小却与很多因素有关,本文和大家探讨这些影响因素. ...

  3. 深入理解机器学习——类别不平衡学习(Imbalanced Learning):应用领域

    类别不平衡学习技术并不仅仅停留在理论上,在很多现实世界的应用领域中,都会用到此类技术.其应用领域包括但不限于以下几方面. 网络入侵检测 目前,随着互联网产业的快速发展,人类的日常生活和网络的联系也变得 ...

  4. 深度学习分类类别不平衡_Github|类别不平衡学习资源(上)

    今天推荐的是一个 github 项目,项目地址如下,主要是类别不平衡学习的论文.代码.框架.库等资源 https://github.com/ZhiningLiu1998/awesome-imbalan ...

  5. Github|类别不平衡学习资源(上)

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 138 篇文章,本文大约 5400 字,阅读大约需要 15 分钟 今天 ...

  6. Github|类别不平衡学习资源(下)

    点击上方"算法猿的成长",关注公众号,选择加"星标"或"置顶" 总第 139 篇文章,本文大约 3600 字,阅读大约需要 10 分钟 继续 ...

  7. 机器学习-类别不平衡问题

    引言:我们假设有这种情况,训练数据有反例998个,正例2个,模型是一个永远将新样本预测为反例的学习器,就能达到99.8%的精度,这样显然是不合理的. 类别不平衡:分类任务中不同类别的训练样例数差别很大 ...

  8. 类别不平衡学习:论文/代码/框架/库

    作者:ZhiningLiu1998 编译:CV君 今天向大家介绍一个跟踪不平衡学习问题的Github资源仓库,文末附其中 7 篇相关综述论文下载. Github地址: https://github.c ...

  9. 机器学习:流形学习Manifold Learning之LLE(局部线性嵌入)

    流形学习被认为属于非线性降维的一个分支. 线性降维的图例如下: 原图: 线性降维后的图: 线性的算法基本就是这个样子,可以看到线性的算法能把最重要的维度们找出来,蛋卷的形状被保全了下来, 但是对很多应 ...

最新文章

  1. 条件随机场(CRF) - 1 - 简介
  2. python考试pass or fail_请问老师为什么我输入的数据,预期结果是pass,我的预期因该是“fail”...
  3. scrapy (2)下载图片及存储信息
  4. xampp mysql创建表_xampp怎样创建数据表和删除数据表 来学习吧
  5. 蓝桥杯单片机基础学习00_1
  6. 一个C程序的编译过程(Linux环境下Gcc)
  7. python图像数独_Python图像识别+KNN求解数独的实现
  8. 【MySQL】基于MySQL的SQL核心语法实战演练(三)
  9. Qt4_创建菜单和工具栏
  10. 电信光猫超级密码破解
  11. YUV420->RGB888格式转换的CPP实现
  12. GAN评价指标代码(FID、LPIPS、MS-SSIM)
  13. Thymeleaf模板引擎使用详解
  14. VBA 程序加密破解
  15. 织梦后台模块管理空白不显示的解决方法
  16. 伊利诺伊香槟分校计算机科学,UIUC的CS「伊利诺伊大学香槟分校计算机科学系」...
  17. 如何查看自己WiFi密码
  18. 数控木雕机器雕工艺品
  19. Dispatch barriers处理读与写的冲突
  20. YDOOK:CSDN博客自定义模块图片

热门文章

  1. 【数学建模】十二(最后一篇):MATLAB CUMCM真题求解实例三:机理建模型
  2. 如何用matlab画负倒函数曲线,负倒描述函数
  3. 计算机系歌,科学网—计算机之歌 - 刘钢的博文
  4. alpine linux apk删除,把玩Alpine linux(二):APK包管理器
  5. Spring整合swagger
  6. IIBA - CBAP考试感悟
  7. RecyclerView图片错乱复用问题
  8. 国家档案局印发《通知》,进一步加强数字档案管理工作
  9. [MATLAB]常微分方程数值求解(ode45 ode15s ode23 solver)
  10. ibm imm挂载iso文件_IBM IMM调试方式