首页 > 其他分享 >机器学习基础(5)—— 模型选择之性能度量

机器学习基础(5)—— 模型选择之性能度量

时间:2022-11-27 10:31:20浏览次数:61  
标签:机器 模型 样本 查全率 查准率 代价 性能 度量


  • 参考:西瓜书第二章

  • ​之前的文章​​介绍了多种模型选择的概念,其关键是设计一个对比各个方法所得模型及其模型参数的规范流程,并利用它从假设空间中选出泛化能力最强的模型,形式化地讲是做以下两件事
  1. 确定模型类型​(决策树、线性回归、神经网络…)·
  2. 确定参数,包括​​模型参数​​​和​​(算法)超参数​​。这一步是模型选择的核心,而比较不同模型(即不同参数)的性能是这一步的核心,“比较” 方法进一步细化为三步
  1. 设计模型性能的 ​评估方法​,上篇文章已经详细介绍过了
  2. 设计性能的量化指标 ​性能度量​,本文进行介绍
  3. 设计合适的比较方法,通常用数理统计中的 ​假设检验

文章目录

  • ​​1 性能度量​​
  • ​​1.1 回归任务常用的性能度量​​
  • ​​1.2 分类任务常用的性能度量​​
  • ​​1.2.1 错误率和精度​​
  • ​​1.2.2 查准率、查全率和
  • ​​1.2.3 ROC 和 AUC​​
  • ​​1.2.4 代价敏感错误率与代价曲线​​
  • ​​2. 比较检验​​

1 性能度量

  • 模型评估的核心是评估泛化能力,相应的评价标准称为 性能度量performance measure​。不同的性能度量可能导致不同的评估结果(即模型的 “好坏” 是相对的),我们应基于任务需求设计性能度量

1.1 回归任务常用的性能度量

  • 给定样本集 机器学习基础(5)—— 模型选择之性能度量_ROC,回归任务的评估对象是学习器 机器学习基础(5)—— 模型选择之性能度量_查准率_02 的预测结果 机器学习基础(5)—— 模型选择之性能度量_查准率_03 和真实标记 机器学习基础(5)—— 模型选择之性能度量_查准率_04
  • 均方误差mean squared error​​:对于离散和连续的数据分布,如下定义均方误差
    机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_05

1.2 分类任务常用的性能度量

  • 分类任务中的性能度量比较多样,下面逐一介绍

1.2.1 错误率和精度

  • 这是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务
  • 给定样本集 机器学习基础(5)—— 模型选择之性能度量_查全率_06,错误率和精度定义如下
  1. 分类错误率​​:对于离散和连续的数据分布,如下定义分类错误率
    机器学习基础(5)—— 模型选择之性能度量_查准率_07
  2. 精度​​:对于离散和连续的数据分布,如下定义分类精度
    机器学习基础(5)—— 模型选择之性能度量_AUC_08

1.2.2 查准率、查全率和

  • 如果我们想进一步考察评估分类性能,只用错误率和精度就力不从心了。考虑最简单的二分类问题,利用错误率和精度可以评估出多少比例的样本被分类错误,但是无法考察 “判断为正例的样本中有多少比例真的是正例”、“所有正样本中有多少被分类正确” 这样的细化指标。对于二分类问题,考虑样本真实类别和预测类别的所有组合情况,可以得到如下的 ​​混淆矩阵confusion matrix​​ (其中 机器学习基础(5)—— 模型选择之性能度量_ROC_09

    这样我们可以进一步提出针对二分类问题的两个指标:
  1. 查准率precision 机器学习基础(5)—— 模型选择之性能度量_查准率_10:预测为正例的样本中真正正样本的比例
  2. 查全率/召回率recall 机器学习基础(5)—— 模型选择之性能度量_查准率_11:真正正样本中预测为正例的比例
    机器学习基础(5)—— 模型选择之性能度量_AUC_12
  • 查准率和查全率是一对矛盾的度量,一个量较高时另一个就较低

以判断西瓜是不是好瓜为例

  1. 若想提高查全率(将好瓜尽可能多地选出来)可以增加选瓜的数量,极端情况下所有瓜全判断为好瓜,则所有好瓜都一定选出,机器学习基础(5)—— 模型选择之性能度量_ROC_13。但此时也误判了大量坏瓜,导致查准率 机器学习基础(5)—— 模型选择之性能度量_查准率_10
  2. 若想提高查准率若(希望选的瓜中好瓜比例尽可能高)可以只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低
  • 通常分类器会输出一个样本判断为正例的概率,可以把所有样本按判正的概率排序,调整概率阈值使得判正的样本数从 0 逐一增加到全体样本,每次计算查准率和查全率,这样就能绘制 ​查准率-查全率曲线(P-R曲线)
    考虑如何用查准和查全率这两个评估指标对比模型
  1. 如果一个学习器的 P-R 曲线被另一个完全包住,则可以断定后者性能更好,如上图中 B 一定优于 C
  2. 如果两个学习其的 P-R 曲线交叉,则可以通过比较 P-R 曲线下面积的大小来对比性能,但是这个值不太好估算,所以人们设计一些综合考虑查准和查全率的性能度量
  • 综合考虑查准和查全率的性能度量主要有以下三种
  1. 平衡点 Break-Event Point,BEP机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_15 时的值,如上图中学习器 A 的 BEP 就是 0.8,这样也能比较模型性能,但是有些过于简化了
  2. F1度量:查准率和查全率的调和平均,定义为
    机器学习基础(5)—— 模型选择之性能度量_AUC_16 这个指标中 机器学习基础(5)—— 模型选择之性能度量_ROC_17机器学习基础(5)—— 模型选择之性能度量_查全率_18
  3. Fβ度量:查准率和查全率的调和平均,定义为
    机器学习基础(5)—— 模型选择之性能度量_查全率_19 这是 机器学习基础(5)—— 模型选择之性能度量_AUC_20 度量的推广,这里的 机器学习基础(5)—— 模型选择之性能度量_AUC_21 度量了查全率 机器学习基础(5)—— 模型选择之性能度量_查准率_11 对查准率 机器学习基础(5)—— 模型选择之性能度量_查准率_10 的相对重要性,通过它可以调节对 机器学习基础(5)—— 模型选择之性能度量_查准率_10机器学习基础(5)—— 模型选择之性能度量_查准率_11
  • 例如在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确是用户感兴趣的,此时查准率更重要;而在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要
  • 相比算数平均和几何平均,调和平均更重视较小值
  • 有时我们想综合考虑多个混淆矩阵来对比模型,比如
  1. 进行多次训练/测试
  2. 执行多个任务
  3. 多分类任务,每两两类组合得到一个混淆矩阵

这时有两种方式进行综合

  1. 先在对各个混淆矩阵计算对应的 机器学习基础(5)—— 模型选择之性能度量_ROC_17机器学习基础(5)—— 模型选择之性能度量_查全率_18,再计算出平均值 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_28,进而利用他们计算 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_29 度量,这样得到的称为 ​​​宏查准率macro-P​​​、​​宏查全率macro-R​​​、​​宏F1 macro-F1​
  2. 先把所有混淆矩阵的对应元素进行平均得到一个平均混淆矩阵,再按上面的方法计算三个度量,这样得到的称为 ​​微查准率micro-P​​​、​​微查全率micro-R​​​、​​微F1 micro-F1​

1.2.3 ROC 和 AUC

  • 上面介绍 P-R 曲线时已经提到了大多数分类器的分类原理,即首先对测试样本产生一个实值或概率值,用它和设定的分类阈值比较,大于就分为正类,反之分为负类。我们可以按分类器输出对测试样本排序,最可能是正例的排在最前,最不可能是正例的排在最后,并根据任务需求设置不同的分类阈值截断点
  1. 若更重视 “查准率”,则选择排序中靠前的位置进行截断
  2. 若更重视"查全率",则可选择靠后的位置进行截断

注意到,这个排序本身的质量好坏,体现了综合考虑不同任务下的 “期望泛化性能” 的好坏,即 “一般情况下” 泛化性能的好坏。ROC 和 AUC 就是从模型输出排序质量的角度来评估分类器泛化性能的度量标准

  • ROC受试者工作特征​:是一个类似 P-R 曲线的曲线,也是逐一调整分类阈值,每次计算两个值作为横纵坐标作图,分别为
  1. 横轴 假正例率FPR:真正负样本中预测为正例的比例
  2. 纵轴为 真正例率TPR:真正正样本中预测为正例的比例(同查全率)
    机器学习基础(5)—— 模型选择之性能度量_AUC_30

这样就能绘制出 ROC 曲线图如下

机器学习基础(5)—— 模型选择之性能度量_AUC_31


显然,图中的虚线对角线对应于 “随机猜测” 模型,而点 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_32 对应于将所有正例排在反例之前的 “理想模型”,对于任意给定的假正例率,对应的真正例率越高越好,从整体上看,就是曲线上凸越多越好。和 P-R 曲线类似,在利用 ROC 指标评估对比模型时

  1. 若一个学习器的曲线将另一个完全包住,则可断定前者性能更好
  2. 如果两个学习器的 ROC 曲线出现交叉,则围出面积更大的学习器好,这个面积指标就是 AUC(Area Under ROC Curve)
  • 使用有限样本集 机器学习基础(5)—— 模型选择之性能度量_查准率_33 评估时,ROC 曲线如上图 b 所示,可以将其分割成很多长方形估计面积(AUC) ,定义为
    机器学习基础(5)—— 模型选择之性能度量_ROC_34 形式化地看,AUC 考虑的是样本预测的排序质量,因此它与排序误差有紧密联系,给定 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_35 个正样本和 机器学习基础(5)—— 模型选择之性能度量_AUC_36 个负样本,令 机器学习基础(5)—— 模型选择之性能度量_ROC_37 分别表示正负样本集合,则排序损失定义为
    机器学习基础(5)—— 模型选择之性能度量_ROC_38考虑每一对正负样本,若学习器对正样本的输出值小于负样本就进行 机器学习基础(5)—— 模型选择之性能度量_ROC_39 的罚分; 若学习器对正样本的输出值等于负样本就进行 机器学习基础(5)—— 模型选择之性能度量_查全率_40,容易看出 机器学习基础(5)—— 模型选择之性能度量_ROC_41 对应的是 ROC 曲线之上的面积,有
    机器学习基础(5)—— 模型选择之性能度量_查全率_42

1.2.4 代价敏感错误率与代价曲线

  • 1.2.2 节介绍 ​​Fβ​​ 度量时,提到了对于不同的任务,对查全率和查准率之间需求的倾向可能不等;类似的,在某个特定任务中,各个类别分类出错导致的代价也可能不等

例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者,看起来都是犯了"一次错误"但后者的影响是增加了进→步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机

  • 前面介绍的性能度量都只是从各类预测错误的次数/比例的角度去构造,隐式地假设了不同的错误代价均等。考虑到不同错误的代价,对于一个多分类任务,设 机器学习基础(5)—— 模型选择之性能度量_AUC_43 表示将第 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_44 类样本预测为 机器学习基础(5)—— 模型选择之性能度量_查准率_45 类的代价,这样就能构造出 ​​代价矩阵​。以最简单的二分类任务为例,代价矩阵为
  • 机器学习基础(5)—— 模型选择之性能度量_查全率_46

  • 注意到通常设置 机器学习基础(5)—— 模型选择之性能度量_AUC_47,将上图的 0/1 类看作正/负类,机器学习基础(5)—— 模型选择之性能度量_ROC_37 分别表示正负样本集合,则可如下计算出 ​​代价敏感cost-sensitive 错误率​​
    机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_49
  • 代价曲线 cost curve
  1. 横轴 正例概率代价 是把正样本误判为负的代价在代价度量中的重要性,取值 机器学习基础(5)—— 模型选择之性能度量_AUC_50,如下(其中 机器学习基础(5)—— 模型选择之性能度量_AUC_51 是样本为正的概率)
    机器学习基础(5)—— 模型选择之性能度量_查准率_52
  2. 纵轴 归一化代价 是各种错误判断情况的综合代价,取值 机器学习基础(5)—— 模型选择之性能度量_AUC_50,如下
    机器学习基础(5)—— 模型选择之性能度量_ROC_54 其中 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_55 是 1.2.3 节的假正例率(正样本误判为负概率);机器学习基础(5)—— 模型选择之性能度量_查全率_56

直观上看,给定一组 机器学习基础(5)—— 模型选择之性能度量_ROC_57 参数,即给定一个学习器的分类性能,就对应 “归一化代价-正例概率代价“ 图中一条从 机器学习基础(5)—— 模型选择之性能度量_AUC_58机器学习基础(5)—— 模型选择之性能度量_查准率_59

  1. 横轴代表所有代价不等情况,即从 “只在意正样本误判(不在意负样本误判)”,到 “不在意正样本误判(只在意负样本误判)”
  2. 纵轴反映各种倾向情况下,某个 机器学习基础(5)—— 模型选择之性能度量_ROC_60

在评估模型进行比较时,我们要综合考虑所有可能的 机器学习基础(5)—— 模型选择之性能度量_ROC_57。具体而言,把 ROC 曲线上的每一个点转化为对应的 机器学习基础(5)—— 模型选择之性能度量_AUC_62 参数,然后在 “归一化代价-正例概率代价“ 图中把所有参数对应的线段都画出来,然后取所有线段的下界,就得到了 ​​代价曲线,它围出的面积即为在所有条件下学习器的期望总体代价,如下所示

机器学习基础(5)—— 模型选择之性能度量_ROC_63

2. 比较检验

  • 利用前一篇文章介绍的实验评估方法,计算出第1节的各个性能度量结果,是不是之间 “比大小” 就能对学习器的性能进行比较了?事实上,机器学习中性能比较这件事比看起来复杂很多
  1. 我们希望比较的是泛化性能,而实验评估只能得到测试集上的性能,两者的对比结果未必相同
  2. 测试集上的性能与测试集本身的选择有很大关系,测试集的尺寸和包含的测试样例都会影响测试结果
  3. 很多机器学习算法本身有一定的随机性,即便用相同的参数设置在同一个测试集上多次运行,其结果也会有不同
  • 这里很容易联想到数理统计中的​​假设检验​​​,比如用简单的错误率 机器学习基础(5)—— 模型选择之性能度量_查全率_64 作为性能度量,我们可以先对学习器的泛化错误率做出假设 机器学习基础(5)—— 模型选择之性能度量_代价敏感曲线_65,然后再用假设检验方法计算该假设的置信度、拒绝域等统计信息。基于假设检验结果我们可推断出,若在测试集上观察到学习器 A 比 B 好,则 A 的泛化性能是否在统计意义上优于 B,以及这个结论的把握有多大
  • 对于假设检验的说明请参考 ​​数理统计 —— 参数估计与假设检验​​,西瓜书上这里介绍了​​交叉验证 t 检验​​​、​​McNemar 检验​​​、​​Friedman检验​​​ 与 ​​Nemenyi后续检验​​ 等方法,还是比较复杂,待续


标签:机器,模型,样本,查全率,查准率,代价,性能,度量
From: https://blog.51cto.com/u_15887260/5889768

相关文章

  • 详解支持向量机-SVC的模型评估指标【菜菜的sklearn课堂笔记】
    视频作者:菜菜TsaiTsai链接:【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili从上一节的例子中可以看出,如果我们的目标是希望尽量捕获少数类,那......
  • cs224w(图机器学习)学习笔记1.2 applications of graph ML
    ApplicationofGraphML图机器学习任务分为四类节点级别nodelevel边级别edgelevel社区/子图级别community(subgraph)level图级别,包括预测任务graph-level......
  • ASP.NET Core教程-Model Binding(模型绑定)
    更新记录转载请注明出处:2022年11月27日发布。2022年11月25日从笔记迁移到博客。模型绑定是什么模型绑定是指:使用来自HTTP请求的值来创建.NET对象的过程。模型绑......
  • TCP/IP 网络模型
    一、应用层应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。二、传输层在传输层会有两个传输协议,分别是TCP和UDP。TCP的全称叫传输控制协议(Transmis......
  • 复杂环境下多移动机器人路径规划研究附Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进。......
  • 博迪投资学·资本市场:第9、14、16章的模型总结
    第九章:资本资产定价模型资本资产定价模型(CPM)是现代金融经济学的莫基石。该模型对资产风险与其期望收益之间的关系给出了精准的预测。资本资产定价模型的一个关键观点是......
  • django模型的字段类型简介
    【django基础】django模型的字段类型简介说实在的,每一个框架基本都会用一套orm,只是各有各的标准,每次用起来都挺费劲的,所以还是要单独整理下AutoField—自增列=int......
  • Linux面试题2:网络IO模型 & IO多路复用
    网络IO先确定一下范围,我们讨论的都是网络IO,现阶段计算机早已经从CPU密集型转换成网络IO密集型,所以网络io的类型对于服务响应而言更重要。五种IO模型依据Unix的IO分类,网......
  • AI模型部署典型策略
    【编者按:模型部署是AI开发生产流程中的重要步骤。对于许多组织而言,选择最佳的模型部署策略以扩展到生产级系统,都是一项复杂且具有挑战的工作。今天IDP将和大家一同,跟随Yasha......
  • 从多线程模型理解并发
    学习完各种线程模型之后,试图从线程模型出发去理解设计者设计这些锁,多线程工具的时候的思想https://articles.zsxq.com/id_rk2jkvxq1n4d.htmlMESA管程模型提到多线程就......