导读

在机器学习中,我们前期经过数据采集、数据清洗,中期进行特征分析、特征选择,后期对处理好的数据集分割,将数据集划分为训练集、验证集、测试集,最后基于划分好的数据集进行训练调优,并选择性能最好的模型。那么我们是如何评估我们的模型性能好坏的呢?这就不得不说一下常用的机器学习评级指标了。上车~~

机器学习评价指标

对于机器学习中评价模型性能的指标,常用的有准确率、精度、召回率、P-R曲线、F1 分数、ROC、AUC以及混淆矩阵等。这里我们先以二分类举例讲解,后边推及到多分类即可。
在二分类中,我们称呼两类样本分别为正类和负类。模型训练好之后,我们让模型对测试集数据进行预测,并对预测结果进行评估。下面介绍几个概念:

  • 真正例(True Positive, TP):被模型预测为正类的正类样本;
  • 假正例(False Positive, FP):被模型预测为正类的负类样本;
  • 真负例(True Negative, TN):被模型预测为负类的负类样本;
  • 假负例(False Negative, FN):被模型预测为负例的正类样本。

我们上边提到的集中指标都是基于以上四个概念进行计算的,下面分别介绍。

  1. 准确率(Accuracy)
    准确率是分类问题最原始的评价指标,反映了预测正确结果占总样本的百分比,其定义为:
    Accuracy=TP+TNTP+TN+FP+FN\begin{aligned} Accuracy = &\frac{TP + TN}{TP + TN + FP + FN}\\ \end{aligned} Accuracy=​TP+TN+FP+FNTP+TN​​
    从准确率的定义式我们可以看出猫腻,假如数据集中样本分布不均衡,100个样本中有99个都是正样本,只有一个负样本,这时候模型很容易对正样本过拟合,而且不认识负类样本。不管三七二十一,只要碰到一个样本,便预测其为正类,这时候计算出来准确率为99%,但我们都知道这种模型是不能没有任何意义的(对负类样本没有判断能力)。所以对模型评估的时候只看准确率是不客观的,片面的,还需要结合其他指标一起判断。

  2. 精度(Precision)

精度是反映了所有预测为正类的样本中实际为正类样本的概率,即在所有预测为正类的样本中,真正的正类样本有多少,其定义为:
Precision=TPTP+FP\begin{aligned} Precision = &\frac{TP}{TP + FP}\\ \end{aligned} Precision=​TP+FPTP​​
准确率反映了模型对整体数据的预测能力(既包括正样本,也包括负样本),而精度指标反映了我们的模型对正类样本预测准确程度

  1. 召回率(Recall)

精度指标反映了我们的模型对正类样本预测准确程度。那我们可以理解召回率表示了模型对正样本的实际甄别能力,即模型预测为正类样本数占所有真正的正类样本的百分比,其定义为:
Recall=TPTP+FN\begin{aligned} Recall = &\frac{TP}{TP + FN}\\ \end{aligned} Recall=​TP+FNTP​​
召回率和准确率是一对此消彼长的指标,例如在典型的猫狗分类中,我们想提升模型对于狗的召回率,那么可能会有猫也被判定为狗,这样一来狗的准确率就下降了。在实际工程中,我们往往需要对这两个指标做Trade-Off,寻找一个平衡点,使得模型性能更加贴合具体的业务场景

  • P-R曲线(Precision-Recall Curve)
    P-R曲线(Precision Recall Curve)正是描述精确率/召回率变化的曲线,P-R曲线定义如下:根据模型的预测结果(一般为一个实值或概率)对测试样本进行排序,将最可能是“正例”的样本排在前面,最不可能是“正例”的排在后面,按此顺序逐个把样本作为“正例”进行预测,每次计算出当前的P值和R值,如下图所示:

    P-R曲线如何评估呢?若一个模型B的P-R曲线被另一个学习器A的P-R曲线完全包住(即模型A的precision和recall均大于模型B),则称:A的性能优于B。若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。但一般来说,曲线下的面积是很难进行估算的,所以衍生出了“平衡点”(Break-Event Point,简称BEP),即当P=R时的取值,平衡点的取值越高,性能更优。如图所示。
  • F1 分数(F1-Score)
    正如上文所述,Precision和Recall指标有时是此消彼长的,即精准率高了,召回率就下降,在一些场景下要兼顾精准率和召回率,最常见的方法就是F-Measure,又称F-Score。F-Measure是P和R的加权调和平均,定义为:
    1Fβ=11+β2∗(1P+β2R)...................(1)\begin{aligned} &\frac{1}{F_\beta} = \frac{1}{1 + \beta^{2} } * (\frac{1}{P} + \frac{\beta ^{2} }{R} )\\ \end{aligned} ................... (1) ​Fβ​1​=1+β21​∗(P1​+Rβ2​)​...................(1)
    Fβ=(1+β2)∗P∗Rβ2∗P+R.........................(2)\begin{aligned} F_\beta = \frac{(1 + \beta ^2) * P * R}{\beta ^2 * P + R}\\ \end{aligned} ......................... (2) Fβ​=β2∗P+R(1+β2)∗P∗R​​.........................(2)
    当β = 1的时候,就是我们说的 F1 分数,即:
    F1=2∗P∗RP+R.....................................(3)\begin{aligned} F_1 = \frac{2 * P * R}{P + R}\\ \end{aligned} ..................................... (3) F1​=P+R2∗P∗R​​.....................................(3)
    从式子(1)中,我们可以看到F1分数是P(Precision)和R(Recall)的调和平均,当F1分数较高时,模型的性能也越好。
  • ROC曲线(ROC Curve)
    前边讲了Accuracy、Precision、Recall,他们互相弥补,可以多方面评估模型性能,你可能觉得已经很好地评估模型了,但是这还不够,因为当测试集中地正类样本和负类样本比例发生变化的时候,这些指标也会发生变化,所以这些指标的鲁棒性还是不那么强。为了避免测试集中样本分布变化对测试结果的影响,我们引入ROC曲线和AUC曲线。
    ROC曲线和上边提到的P-R曲线一样,是一种不依赖于阈值的评价指标,在输出为概率的分布模型中,如果仅使用准确率、精确率、召回率作为评价指标进行模型对比时,都必须时基于某一个给定阈值的,对于不同的阈值,各模型的Metrics结果也会有所不同,这样就很难得出一个高置信度的结果。介绍之前我们还需引入几个指标概念:
  • 灵敏度(Sensitivity), 也叫做真正率(TPR)
    TPR=正样本预测正确数正样本总数=TPTP+FN\begin{aligned} TPR = &\frac{正样本预测正确数}{正样本总数} = \frac{TP}{TP + FN}\\ \end{aligned} TPR=​正样本总数正样本预测正确数​=TP+FNTP​​
  • 特异度(Specificity), 也叫做真负率(TFR)
    TFR=负样本预测正确数负样本总数=TNTN+FP\begin{aligned} TFR = &\frac{负样本预测正确数}{负样本总数} = \frac{TN}{TN + FP}\\ \end{aligned} TFR=​负样本总数负样本预测正确数​=TN+FPTN​​
  • 假正率(FPR)
    FPR=负样本预测错误数负样本总数=FPTN+FP\begin{aligned} FPR = &\frac{负样本预测错误数}{负样本总数} = \frac{FP}{TN + FP}\\ \end{aligned} FPR=​负样本总数负样本预测错误数​=TN+FPFP​​
  • 假负率(FNR)
    FNR=正样本预测错误数正样本总数=FPFP+TN\begin{aligned} FNR = &\frac{正样本预测错误数}{正样本总数} = \frac{FP}{FP + TN}\\ \end{aligned} FNR=​正样本总数正样本预测错误数​=FP+TNFP​​

从它们的定义是中我们可以看到,灵敏度就是正样本的召回率,特异度就是负样本的召回率,而假负率和假正率分别等于1 - TPR和1 - TNR,上述四个概念都是针对单一类别(正样本或者负样本)的预测结果而言的,所以对整体样本是否均衡并不敏感。我们还是拿样本不均衡的例子解释一下,假设总样本中,90%是正样本,10%是负样本。在这种情况下我们如果使用准确率进行评价是不科学的,但是用TPR和TNR却是可以的,因为TPR只关注90%正样本中有多少是被预测正确的,而与那10%负样本毫无关系,同理,FPR只关注10%负样本中有多少是被预测错误的,也与那90%正样本毫无关系。这样就避免了样本不平衡的问题。
如图所示,ROC曲线的两个主要指标就是TPRFPR,与P-R曲线类似,ROC曲线也是通过不同阈值下的TPRFPR绘制出来的,但是P-R曲线的横纵坐标为Precision和Recall,它们会随着阈值的不同曲线会发生变化,但是ROC因为选取的是TPRFPR,曲线形状不受与之选择的影响。即阈值不会影响我们使用ROC曲线来评估模型的性能。而且ROC不受类别不均衡的影响,无论正负样本的分布及比例怎么变化,ROC曲线不变,这是经过实验验证的。

  • AUC(Area Under Curve)
    AUC(Area Under Curve),为线下面积,是ROC曲线与TPR与FPR两坐标轴围成区域的面积大小。其中TPR为纵轴,FPR为横轴,因为TPR为正样本预测正确数占正样本总数的百分比,我们肯定希望它越高越好,FPR为预测错误的负样本数占负样本总数的百分比,我们肯定希望它越低越好,所以可以推断出ROC曲线越陡峭,说明模型的性能越好,相应地AUC也就越大。
    如果模型是完美的,那么它的AUC = 1,证明所有正例排在了负例的前面,如果模型是个简单的二类随机猜测模型,那么它的AUC = 0.5,如果一个模型好于另一个,则它的曲线下方面积相对较大,对应的AUC值也会较大。

  • 混淆矩阵(Confusion Matrix)

混淆矩阵可以直观地反应模型预测分类的结果,顾名思义,它反映了模型预测分类的混淆程度。矩阵的第 i 行和第 j 列代表的是标签为 i 类别的样本被分类为 j 类别的样本个数。对角线上为所有预测正确的样本数目。在深度学习的图像分类任务中,混淆矩阵是比较通用的评价指标,它反映了模型对各个类别的判断能力和学习效果。

总结

在这篇文章中,我们介绍了机器学习领域中模型评价的常用指标,分别由准确率(Accuracy)、精度(Precision)、召回率(Recall)、P-R曲线、ROC曲线、AUC以及混淆矩阵。大家在具体使用过程中可以结合自己的业务场景和任务,以及自己领域比较主流的指标进行评估。希望文章能够在大家需要的时候帮助到大家,同时也是我自己的一边复习,跟大家一起进步是很开心的一件事情。大家有什么疑问或者意见欢迎评论区交流,文章对您有帮助的话别忘了留个赞再走哦~对于搞机器学习的小伙伴可以收藏,总是要用到的嘿嘿。

你要的机器学习常用评价指标,以备不时之需相关推荐

  1. 《统计学习方法》读书笔记——机器学习常用评价指标

    传送门 <统计学习方法>读书笔记--机器学习常用评价指标 <统计学习方法>读书笔记--感知机(原理+代码实现) <统计学习方法>读书笔记--K近邻法(原理+代码实现 ...

  2. 机器学习常用评价指标:ACC、AUC、ROC曲线

    文章目录 一.混淆矩阵 二.评价指标 1.准确度(Accuracy) 2.AUC ROC曲线 举例 如何画ROC曲线 AUC的计算 AUC意味着什么 为什么使用ROC曲线 参考 一.混淆矩阵 基于样本 ...

  3. 预测评价系统_「机器学习」一文读懂分类算法常用评价指标

    前言 评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标. 在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中 ...

  4. 机器学习——算法常用评价指标

    机器学习--算法常用评价指标 一.常用评价指标 二.案例 一.常用评价指标 参考书籍:<机器学习>--周志华 错误率: 分类错误的样本数占样本总数的比例 精度: 分类正确的样本数占样本总数 ...

  5. 机器学习模型常用评价指标(Accuracy, Precision, Recall、F1-score、MSE、RMSE、MAE、R方)

    前言 众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE.但是我们真正了解这些评价指标的意义吗? ...

  6. 机器学习分类算法常用评价指标

    目录 1.准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值 2.宏平均(Macro-averaging)和微平均(Micro-averaging) 3.Python3  sklea ...

  7. 机器学习模型评价指标及拟合概念

    机器学习模型评价指标及拟合概念 一.机器学习模型评价指标 回归问题等连续值的差值的判断 1) MAE平均绝对误差: 2)MSE均方误差: 3)RMSE均方根误差: 4)R平方: 分类问题 1)混淆矩阵 ...

  8. 机器学习模型评价指标一览

    本文有Mcgill大学本科,waterloo大学硕士生林羿在圣一信息技术有限公司实习时,所做的收集. 在这篇文档里,我们会介绍一些常用的机器学习模型评价指标.这些指标会根据模型的目标而分成以下两类: ...

  9. 机器学习分类器评价指标详解(Precision, Recall, PR, ROC, AUC等)(一)

    为了系统性地理解机器学习模型的不同评价指标及其之间的关系,我们将从其定义出发,探究其物理含义及彼此之间的联系,并从数学上给出相应的公式推导,以方便后续用到时复习理解.由于篇幅较长,因此将其分为两篇,这 ...

最新文章

  1. dotNet core Windows上 部署
  2. 优秀PHP在线教程收集
  3. php mysql 博客制作_PHP实现简易blog的制作
  4. JAVA8如何进行IDEA配置_IntelliJ Idea 配置jdk8
  5. 浅析libuv源码-node事件轮询解析(1)
  6. laravel queue java_使用 Laravel Queue 不得不明白的知识
  7. TypeScript:数组
  8. 生活广场远程预付费电能管理系统的设计与应用
  9. python:base64与图片的互转
  10. 海康监控设备如何修改IP地址
  11. zcmu——4939: 大整数排序
  12. 五常大米引入蚂蚁金服区块链,从大米“出生”就开始“验明正身”
  13. 小米再次回购股票:斥资近1亿港元 传递市场信心
  14. xmap 配置php环境,xmap 的动态 - SegmentFault 思否
  15. 《统计学习方法》全部算法
  16. Week2 Bing词典Android客户端案例分析
  17. 【生活】买了个大玩具
  18. powerdesinger使用ODBC在mysql中建表
  19. 菊花厂IOT解决方案
  20. ASP.NET使aspx页面能接受HTML,asp的页面传送的文件

热门文章

  1. Android-P WindowWindowManager
  2. 关于java,word表格,通过将模板表格的属性附加到自定义表格上,也就是修改表格的属性(通过模板表格的属性)。
  3. MIPI DPHY接口(基于Xilinx FPGA实现)案例分析
  4. VS编程怎么获得变量的堆栈地址?(vs2019)
  5. 华南理工计算机应用硕士,华南理工大学计算机考研解析
  6. [Python-Matplotlib] 动态图表绘制来达到实时监控
  7. 年底了,一份关乎金融风控人的的监管报告为您解读
  8. 异丙醇的解吸特性和 IPA 蒸汽干燥硅晶片中的水分
  9. WordPress多本小说主题–WNovel主题,现已更新至1.2版本
  10. php怎么获取日历宜忌,3个php获取日历的函数