【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
【机器学习基础】机器学习入门(1)
【机器学习基础】机器学习入门(2)
【机器学习基础】机器学习的基本术语
💡本期内容:上一篇文章介绍了机器学习的基本术语,离完成学习又近了一步!这篇文章在正式开始算法模型的介绍之前,先说一下机器学习的模型评估,主要包括研究问题、相关文献综述、主要理论公式和案例解释。快来学习吧!!!


文章目录

  • 1 引言
  • 2 相关文献综述
  • 3 模型评估主要理论、评估方法及性能度量
    • 3.1 模型评估的引出及思考
    • 3.2 学习器真的如我们想要的一样吗
    • 3.3 评估方法
      • 3.3.1 留出法(Holdout Method)
      • 3.3.2 交叉验证法 (Cross-Validation Method)
      • 3.3.3 自助法 (Bootstrap Method)
    • 3.4 性能度量
      • 3.4.1查准率、查全率与F1
      • 3.4.2 P-R曲线
      • 3.4.3 ROC与AUC
      • 3.4.4 代价敏感错误率与代价矩阵


1 引言

机器学习模型评估是机器学习领域中的一个重要研究方向,其研究背景在于随着大数据时代的到来,人们面临着越来越多的数据分析和处理任务,而机器学习作为一种高效的数据处理技术,在很多领域都得到了广泛应用。然而,机器学习模型的效果评估是机器学习应用过程中一个非常关键的问题,因此机器学习模型评估的研究具有非常重要的意义。

在这里插入图片描述

  • 研究问题

机器学习模型评估的研究问题主要包括:如何选择合适的评估指标、如何确定评估的实验设计、如何利用评估结果对模型进行优化等。此外,由于机器学习模型的复杂性和多样性,评估方法的选择和设计也是需要解决的重要问题。

  • 研究意义

机器学习模型评估的研究意义在于:

  1. 提高模型的预测精度和泛化能力;
  2. 帮助我们更好地理解模型的内部机制和性能;
  3. 为模型优化和改进提供依据;
  4. 应用于实际问题的解决,提高生产力和效率。

2 相关文献综述

  • 机器学习模型评估概述

机器学习模型评估是对模型性能进行量化和优化的过程。评估不仅涉及对模型在训练集上的性能考察,还包括在测试集上的表现评估。训练集用于训练模型,测试集则用于验证模型在新数据上的泛化能力。此外,为了充分了解模型的性能,还常常采用交叉验证等技术进行评估。

  • 模型评估的性能度量指标

性能度量指标是评估机器学习模型性能的关键工具。常用的性能度量指标包括准确率、精确率、召回率、F1分数、ROC AUC面积等。这些指标可用于二分类、多分类和回归等不同类型的机器学习问题。
准确率表示预测正确的样本数占总样本数的比例,精确率和召回率则分别表示预测为正且确实为正的样本数以及预测为负且确实为负的样本数所占的比例。
F1分数是精确率和召回率的调和平均数,用于综合考虑二者的性能。
ROC、AUC面积则是一种常用的分类性能指标,它表示在所有可能的分类阈值下模型的ROC曲线与y=x线之间的面积。

在这里插入图片描述

  • 主要模型评估方法

主要的模型评估方法包括内部评估和外部评估
内部评估主要基于训练集和测试集进行,如准确率、精确率、召回率和F1分数等。
外部评估则通过比较模型与其他基准模型的性能来进行评估,如ROC AUC面积和交叉验证等。此外,为了充分了解模型的性能,还常常采用交叉验证等技术进行评估。

  • 现有研究不足与问题

尽管已经有很多关于机器学习模型评估的研究,但仍存在一些不足和问题。首先,不同的评估指标可能导致评估结果的差异和误解,因此需要谨慎选择合适的指标。其次,由于数据的复杂性和模型的多样性,现有评估方法可能无法全面反映模型的性能,因此需要开发更加鲁棒和泛化的评估方法。
此外,现有研究还缺乏对不同模型评估方法的比较和分析,因此需要进行更加深入的研究以找出最佳的评估策略。


3 模型评估主要理论、评估方法及性能度量

3.1 模型评估的引出及思考

  • 精度与错误率

我们通常将分类错误的样本数占总样本数的比例称为“错误率”,也即当在m个样本中有α个样本分类错误时,错误率E等于α除以m。相应地,1减去错误率就是精度,也即“精度=1-错误率”。更一般地,我们将学习器的实际预测输出与样本的真实输出之间的差异称为“误差”

  • 训练误差和泛化误差——我要得到什么?

我们还可以将学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”。显然,我们希望得到泛化误差小的学习器。然而,由于我们事先并不知道新样本是什么样的,所以实际上我们只能尽力使经验误差最小化

  • 精度越大越好?

在很多情况下,我们可以学习到经验误差很小、在训练集上表现很好的学习器。
例如,甚至可以对所有训练样本都分类正确,也即分类错误率为零,分类精度为100%。然而,这样的学习器是否是我们想要的呢?遗憾的是,这样的学习器在多数情况下都不理想

3.2 学习器真的如我们想要的一样吗

我们实际希望的,是在新样本上能表现得很好的学习器。为了实现这一目标,我们应该从训练样本中学习出适用于所有潜在样本的普遍规律,以便在遇到新样本时能够做出正确的判断。

  • 过拟合与欠拟合

然而,当学习器过于适应训练样本时,它可能会将训练样本自身的某些特点视为所有潜在样本都具有的一般性质,从而导致泛化性能下降。这种现象在机器学习中称为“过拟合”。与之相对的是“欠拟合”,这意味着学习器尚未完全掌握训练样本的一般性质

在这里插入图片描述

如果出现过拟合与欠拟合,需要使用正则化等方法来进行挽救,具体方法后面会讲到。

然而必须认识到,过拟合是无法彻底避免的,我们所能做的只是"缓解"或者说减小其风险。关于这一点,可大致这样理解:机器学习面临的问题通常是 NP 难甚至更难,而有效的学习算法必然是在多项式时间内运行完 ,若可彻底避免过拟合, 则通过经验误差最小化就能获最优解,这就意味着我们构造性地证明了“P=NP” ;因此,只要相信 "P≠NP”,过拟合就不可避免。

  • 如何选择?

在现实任务中,我们往往有多种学习算法供选择,甚至对同一个学习算法,当使用不同的参数配置 ?也会产生不同的模型那么,我们该选用哪个学习算法、使用哪种参数配置呢?这就是机器学习中的"模型选择" (model selection) 问题。
理想的解决方案当然是对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型
然而如上面所讨论的,我们无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准,那么,在现实中如何进行模型评估与选择呢?

3.3 评估方法

测试样本为什么要尽可能不出现在训练集中呢?
为理解这一点,不妨考虑这样一个场景:老师出了10道习题供同学们练习,考试时老师又用同样的这10道题作为试题,这个考试成绩能否有效反映出同学们学得好不好呢?答案是否定的,可能有的同学只会做这10道题却能得高分。

希望得到泛化性能强的模型,好比是希望同学们对课程学得很好、获得了对所学知识“举一反三”的能力;训练样本相当于给同学们练习的习题,测试过程则相当于考试.显然,若测试样本被用作训练了,则得到的将是过于“乐观”的估计结果.

3.3.1 留出法(Holdout Method)

‘留出法’ 直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T即D=S∪T,S∩T≠∅. 在S上训练出模型后,用T来评估其测试误差,作为泛化误差的估计需要注意的是,训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,在分类任务中要保持样本类别比例相似,取样通常采用的是【分层抽样】

在这里插入图片描述

  • 主要步骤
  1. 将原始数据集分成两个部分:训练集和测试集。通常,训练集用于训练模型,测试集用于评估模型。
  2. 使用训练集训练模型
  3. 使用测试集评估模型,计算模型的各项性能指标,如准确率、精确率、召回率等。
  4. 根据测试集的评估结果,对模型进行调整和优化
  5. 重复步骤b-d,直到模型性能达到满意的水平。

3.3.2 交叉验证法 (Cross-Validation Method)

Cross Validation:简言之,就是进行多次train_test_split划分
每次划分时,在不同的数据集上进行训练、测试评估,从而得出一个评价结果;如果是5折交叉验证,意思就是在原始数据集上,进行5次划分,每次划分进行一次训练、评估,最后得到5次划分后的评估结果,一般在这几次评估结果上取平均得到最后的评分。k-fold cross-validation ,其中,k一般取5或10。

  • 交叉验证的优点
  1. 原始采用的train_test_split方法,数据划分具有偶然性;交叉验证通过多次划分,大大降低了这种由一次随机划分带来的偶然性,同时通过多次划分,多次训练,模型也能遇到各种各样的数据,从而提高其泛化能力;

  2. 与原始的train_test_split相比,对数据的使用效率更高。train_test_split,默认训练集、测试集比例为3:1,而对交叉验证来说,如果是5折交叉验证,训练集比测试集为4:1;10折交叉验证训练集比测试集为9:1。数据量越大,模型准确率越高!

在这里插入图片描述

  • 交叉验证法的主要步骤
  1. 将原始数据集分成k个部分,其中k-1个部分作为训练集,剩余的部分作为测试集。
  2. 使用k-1个部分训练模型
  3. 使用剩余的部分测试模型,计算模型的各项性能指标。
  4. 重复步骤b-c,直到每个部分都被用作测试集一次
  5. 对所有的测试结果进行平均,得到模型的最终性能指标。
  6. 根据最终性能指标,对模型进行调整和优化。
  7. 重复步骤b-f,直到模型性能达到满意的水平。

3.3.3 自助法 (Bootstrap Method)

自助法是一种常用的模型评估方法,它通过从原始数据集中有放回地随机抽取样本来构建新数据集进行训练和测试。由于每次抽样可能会产生重复的样本,因此新数据集的大小与原始数据集相同,但是其中大约有36.8%的样本没有出现在新数据集中。这些没有出现在新数据集中的样本被用作测试集,而出现在新数据集中的样本则被用作训练集。

自助法的优点是能够从有限的数据集中产生多个不同的训练集和测试集,从而更好地评估模型的性能。但是,由于每次抽样都会产生不同的数据集,因此自助法会引入额外的随机性,使得模型评估的结果更加不稳定。

在这里插入图片描述

  • 自助法的步骤
  1. 从原始数据集中随机选择n个样本构成一个新的数据集
  2. 使用新的数据集训练模型
  3. 使用原始数据集测试模型,计算模型的各项性能指标
  4. 重复步骤a-c多次(如1000次),得到每个性能指标的平均值和标准偏差
  5. 根据平均值和标准偏差,对模型进行调整和优化
  6. 重复步骤a-e,直到模型性能达到满意的水平。

3.4 性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure).

常用的性能度量包括准确度、灵敏度、特异性、精确度、召回率、F度量和G均值等。不同的性能度量会导致不同的评估结果。其中,准确度是指分类正确的样本数占总样本数的比例;灵敏度是指真实为正例的样本中被正确预测为正例的比例;特异性是指真实为负例的样本中被正确预测为负例的比例;精确度是指被正确预测为正例的样本数占所有预测为正例的样本数的比例;召回率是指真实为正例的样本中被正确预测为正例的比例;F度量是精确度和召回率的加权调和平均数;G均值是灵敏度和特异性的乘积的平方根。

3.4.1查准率、查全率与F1

  • 查准率(Precision):是指预测结果中真正例(True Positive,TP)占所有预测结果中正例(Positive,TP+FP)的比例。公式为:Precision = TP / (TP + FP)。查准率越高,说明模型预测结果中真正例的比例越高,模型对于正样本的识别能力越强。
  • 查全率(Recall):是指预测结果中真正例(True Positive,TP)占所有实际正例(Positive,TP+FN)的比例。公式为:Recall = TP / (TP + FN)。查全率越高,说明模型能够成功预测出的正样本比例越高,模型的识别能力越全面。
  • F1值:是查准率和查全率的调和均值,用于综合评价模型的性能。公式为:F1 = 2 * (Precision * Recall) / (Precision + Recall)。F1值越高,说明模型在准确性和可靠性方面的表现都较好。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4.2 P-R曲线

查准率和查全率是一对矛盾的度量.一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

在很多情形下,我们可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本。
按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。
以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称“P-R曲线”,显示该曲线的图称为“P-R图”.
在这里插入图片描述

3.4.3 ROC与AUC

ROC(Receiver Operating Characteristic)曲线和AUC(Area Under Curve)常被用来评价一个二值分类器(binary classifier)的优劣。ROC曲线也称为受试者工作特征曲线(receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve)。

  • ROC曲线:它通过将真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,FPR)作为横纵坐标来描绘分类器在不同阈值下的性能

与P-R曲线相似,根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了ROC曲线,与P-R曲线使用查准率、查全率为纵、横轴不同,ROC曲线的纵轴是真正例率TPR,横轴是假正例率FPR

在这里插入图片描述

AUC:AUC是ROC曲线下的面积,常用于评估模型在二分类问题中的性能。

进行学习器的比较时,与P-R 图相似若一个学习器的 ROC 曲线被另个学习器的曲线完全“包住”,则可断言后者的性能优于前者; 若两个学习器的 ROC 曲线发生交叉则难以一般性地断言两者孰优敦劣.此时如果一定要进行比较.则较为合理的判据是比较 ROC 曲线下的面积即AUC(Area Under ROC Curve)
请添加图片描述

在这里插入图片描述

3.4.4 代价敏感错误率与代价矩阵

在现实任务中常会遇到这样的情况: 不同类型的错误所造成的后果不同。例如在医疗诊断中,错误地把患者诊断为健康人与错误地把健康人诊断为患者看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机:再如门禁系统错误地把可通行人员拦在门外,将使得用户体验不佳,但错误地把陌生人放进门内,则会造成严重的安全事故.为权衡不同类型错误所造成的不同损失可为错误赋予“非均等代价”(unequal cost)。
请添加图片描述
costij表示将第i类样本预测为第j类样本的代价。
假设将第0类作为正类,第1类作为反类,令D+为正例集,D-为负例集。“代价敏感”(cost-sensitive)错误率为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代价曲线画法

  1. 设ROC曲线上点的坐标为(FPR,TPR),则可计算出相应的FNR=1-TPR
  2. 在代价平面上绘制一条从(0, FPR)到(1, FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;
  3. 如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后去所有线段的下界,围成的面积即为在所有条件下学习期的总体代价。
    请添加图片描述

:部分内容与图片来自《机器学习》——周志华

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/146392.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【广州华锐互动】VR居家防火逃生模拟演练增强训练的真实性

VR软件开发公司广州华锐互动在消防培训领域已开发了多款VR产品,今天为大家介绍VR居家防火逃生模拟演练系统,这是一种基于虚拟现实技术的消防教育训练设备,通过模拟真实的火灾场景,让使用者身临其境地体验火灾逃生过程,…

Telnet 测试 UDP 端口?

Telnet 并不支持 UDP 端口的测试,可以使用 nc 命令来进行测试。nc 命令两种都支持: TCP # nc -z -v -u [hostname/IP address] [port number] # nc -z -v 192.168.10.12 22 Connection to 192.118.20.95 22 port [tcp/ssh] succeeded! UDP # nc -z -v…

假如我是Langchain专家,你会问什么来测试我的水平

推荐Langchain YouTube 视频排行榜 1. 假如我是Langchain专家,你会问什么来测试我的水平; 作为Langchain专家,您可能需要回答一系列深入和具体的问题,这些问题旨在测试您对Langchain的理解和实际应用能力。以下是一些可能的问题…

浅谈:Flutter现状、与为什么选择Flutter——其实大家都在用只是你不知道罢了

浅谈:谁将会动那些抵制学习还装懂的人的蛋糕 开发环境现状与为什么选择Flutter 我本从不屑于写这种技术外的技术文章,但是今天刷某应用优点上头,想发唯一一篇。这篇文章可能会得罪一些就喜欢地址学新架构的,以及还不了解就开始起哄…

【go】报错整理与解决

文章目录 依赖下载失败checksum mismatch启动报错missing go.sum 依赖下载失败checksum mismatch > go get github.com/hibiken/asynqmon go: downloading github.com/hibiken/asynqmon v0.7.2 go: github.com/hibiken/asynqmonv0.7.2: verifying module: checksum mismatc…

Q learning算法

Q learning算法 代码仓库:https://github.com/daiyizheng/DL/tree/master/09-rl Q Learning是强化学习算法中的一个经典算法。在一个决策过程中,我们不知道完整的计算模型,所以需要我们去不停的尝试。 算法流程 整体流程如下: Q-table 初…

XUbuntu22.04之安装pkg-config(一百九十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

自定义GPT已经出现,并将影响人工智能的一切,做好被挑战的准备了吗?

原创 | 文 BFT机器人 OpenAI凭借最新突破:定制GPT站在创新的最前沿。预示着个性化数字协助的新时代到来,ChatGPT以前所未有的精度来满足个人需求和专业需求。 从本质上讲,自定义GPT是之前的ChatGPT的高度专业化版本或代理,但自定…

kafka单节点创建 topic 超时

1.根据之前的知道,安装kafka的时候改了config的server.properies文件中的listeners配置 之前这一行是没有注释掉的,结果创建topic的时候时钟报错连接超时 结果资料,发现就是因为listeners的问题 https://blog.csdn.net/weixin_42133361/art…

【2013年数据结构真题】

highlight: a11y-dark 41题 王道解析: 算法的策略是从前向后扫描数组元素,标记出一个可能成为主元素的元素Num 。然后重新计数,确认Num是否是主元素。算法可分为以下两步: 选取候选的主元素:依次扫描所给数组中的每个…

CCNA课程实验-14-Final_Lab

目录 实验条件网络拓朴需求 配置实现1. 配置PC1~3, DHCP_Server的vlan2. VLAN10、20的网关为MSW1对应的SVI,VLAN30、40的网关为MSW2对应的SVI;3. 配置5台交换机之间线路均为Trunk4. 配置5台交换机均启用Rapid-PVST(RSTP)5. 配置DHCP Server,创…

CCF ChinaSoft 2023 论坛巡礼|自动驾驶仿真测试论坛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

Outlook如何精准搜索邮件

说明: 使用Outlook默认的搜索时,会出来很多无关的信息,对搜索邮件带来很大的不便,下面介绍一个使用精准搜索的方法。 操作指引: 1、在outlook左上角,进行如下操作,打开“其他命令” 2、打开快…

基于RFbeam的V-LD1-60GHz毫米波雷达传感器数据获取(通过UART串口来控制模块)

基于RFbeam的V-LD1-60GHz毫米波雷达传感器数据获取(通过UART串口来控制模块) 文章目录 V-LD1命令发送消息回复通信示例雷达数据获取宏定义通信代码运行效果附录:压缩字符串、大小端格式转换压缩字符串浮点数压缩Packed-ASCII字符串 大小端转…

大数据知识图谱项目——基于知识图谱的电影问答系统(超详细讲解及源码)

大数据知识图谱项目——基于知识图谱的电影问答系统(超详细讲解及源码) 一、项目概述 知识图谱是将知识连接起来形成的一个网络。由节点和边组成,节点是实体,边是两个实体的关系,节点和边都可以有属性。知识图谱除了…

【物联网】BDS/GNSS 全星座定位导航模块——ATGM332D-5N

随着科技的不断进步,导航系统已经成为我们日常生活中不可或缺的一部分。传统的导航系统往往只提供基本的地图和路线规划,对于一些特殊需求或个性化定位并不够满足。全星座定位导航模块的出现,为我们带来了全新的导航体验。通过结合星座学说和…

【Liunx】部署WEB服务:Apache

【Liunx】部署WEB服务:Apache 概述Apache1.介绍2.Apache文件路径3.Apache详解(1)安装Apache(2)启动Apache(3)配置文件a.Apache主配置文件:vim /etc/httpd/conf/httpd.conf信息:b.基于主机头的虚拟主机 (4)开始演示:a.新建两个网站根目录b.分别…

JavaScript从入门到精通系列第三十七篇:详解JavaScript中文档的加载顺序

文章目录 一:文档加载说明 1:回顾一个代码 2:问题分析和说明 二:如何给JS换个位置? 1:过程分析 2:代码编写 3:运行结果 4:解释说明 大神链接:作者有幸…

Python机器学习、深度学习提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库,还有丰富的第三方库,Python在数据处理、科学计算、数学建模、数据挖…

Latex在图表标题里面引用参考文献时,出现参考文献顺序混乱的解决方案(适用于bibtex)

问题描述 如果你在figure环境的\caption或\captionof中使用\cite,但是参考文献的顺序仍然不正确,可能是因为LaTeX的处理流程导致了这个问题。 比如图片在第二章节但里面引用了参考文献,在文章末尾的参考文献第二章图片的参考文献顺序&#…