热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

2.模型性能的比较检验

标签(空格分隔):王小草机器学习笔记通过模型评估的方法与性能的度量我们知道了学习器的性能指标,但是如何知道这个学习器的性能是否真的达到要求,或者如何在统计学上比较学习器A优于学习器B

标签(空格分隔): 王小草机器学习笔记


通过模型评估的方法与性能的度量我们知道了学习器的性能指标,但是如何知道这个学习器的性能是否真的达到要求,或者如何在统计学上比较学习器A优于学习器B,以及这个把握有多大呢?在统计学上,我们使用“统计假设检验”(hypothesis test)。

2.1 对单个学习器泛化性能的假设检验

做了多次留出法或者交叉验证法之后,会有多个测试误差率,此时使用“t检验”(t-test)来检验单个学习器产生的多个测试误差率是否满足预先期望的泛化误差率

假设k次留出法得到k个测试误差率,平均测试误差为μ,方差为σ^2。
因为k个测试误差率可看做泛化误差率的随机采样,则变量Tt服从自由度为k-1的t分布:

原假设H0:μ = 泛化误差率
根据预先设定的显著度α,以及自由度k-1,查表可得临界值b。
如果Tt小于临界值b则“不能拒绝原假设”,可认为泛化误差率为;否则拒绝原假设,在该显著度下认为泛化误差与有显著不同。

2.2 对两个学习器性能的比较_01–交叉验证t检验

对两个学习器A,B在同一组数据集i上的性能指标进行比较。如果性能相同,则他们得到的测试错误率应该也相同,即

2.2.1 一般形式的交叉验证t检验

具体的做法是:
(1)对一组样本D,进行k折交叉验证,会产生k个测试误差率,将两个学习器都分别在每对数据子集上进行训练与测试,会分别产生两组测试误差率:

(2)对每对结果求差值:
若两个学习器的性能相同,则相对应的两个误差率的差值应该为0,因此可以根据差值来对“学习器A,B性能相同”这个原假设做t检验

(3)假设检验:先计算出差值的均值μ与方差σ^2,在显著度α下,若变量

小于自由度为k-1的临界值,则原假设不能被拒绝,认为两个学习器的性能没有显著差别;反之则认为两个学习器的性能有显著差别,并且选择平均错误率较小的那个学习器。

2.2.2 5*2交叉验证法

为了避免有点时候因为样本有限,不同轮次的训练集会有重复,使得测试错误率不独立而导致过高估计假设成立的概率,可以采用“5*2交叉验证法”。即5次2折交叉验证。

具体做法:
(1)在,每次2折交叉验证之前将随机将数据打乱,使得五次交叉验证中的数据不重复、

(2)对A,B两个学习器,将第i次二折交叉验证产生的两对测试错误率求差。第一折上的差值为,第二折上的差值为
,i表示第i次二折交叉验证。

(3)为了缓解测试错误的非独立性。仅计算第一次2折交叉验证上的两个差值的平均值

对每次2折实验的结果都计算方差(得到5个方差)

(4)假设检验:计算变量

服从自由度为5的t分布,若设置置信度为α为0.05, 查表可得临界值为2.5706,。若果Tt小于这个临界值,则表示在该置信度下不拒绝原假设,两个学习器性能无差异。

2.3 对两个学习器性能的比较_02–McNemar检验

在二分类问题中,使用留出法还可以分别得到两个学习器的分类结果,用“列联表”表示如下:

若两个学习器性能相同,则应用e01=e10,那么变量|e01-e10|应是服从正态分布。

计算变量:

服从自由度为1的χ2分布。给定显著度α,当以上变量小于临界值χ2时,不拒绝原假设,认为两个学习器没有显著差别。

2.4 在多个数据集上对多个算法的比较–Friedman检验与Nemenyi后续检验

2.4.1 Friedman检验

假设我们用D1,D2,D3,D4四个数据集对算法A,B,C进行比较。

具体做法:
(1)首先使用留出法或者交叉验证法得到每个算法再每个数据集上的测试结果。

(2)然后再每个数据集上根据算法的性能进行由好到坏的排序,并赋予序值1,2,3…;若算法的测试性能相同则平分序值。

(3)计算出每个算法在所有数据集上的平均序值。如下:

(4)使用Friedman检验判断算法是否性能相同,如果相同,则他们的平均序值应当相同。假定有N个数据集,K个算法,ri表示第i个算法的平均序值。
当k和N都比较大的时候,以下变量服从自由度为k-1的χ2分布。

以上是“原始的-Friedman检验”,过于保守,现在通常使用以下变量:

该变量服从自由度k-1和(k-1)(N-1)d F分布。

2.4.2 Nemenyi后续检验

如果“所有算法性能相同”这个假设被拒绝,则说明算法的性能显著不同。于是需要进行“后续检验”来区分算法,常用的是Nemenyi后续检验。

具体做法:
(1)计算以下变量:

其中平qa可查表得

(2)计算每个算法两两之间的平均序值的差值,如果差值大于CD则说明两个算法有显著差异,如果小于CD则说明两个算法的性能没有显著差别。

2.5 偏差与方差

偏差-方差分解:解释学习算法泛化能力。对学习算法的期望泛化错误了进行拆解。

泛化误差可以分解为偏差,方差,噪声之和。

偏差:算法的期望预测与真实结果的偏离程度;
方差:同样大小的训练集的变动所导致的学习性能的变化;
噪声:刻画学习问题本身的难度。

泛化性能是由算法的能力,数据的充分性,以及学习任务本身的难度所共同决定的。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 本文详细介绍了商汤科技面试中涉及的CV算法面经内容,包括CornerNet的介绍与CornerPooling的解决方案、Mimic知识蒸馏的实现方式、MobileNet的特点、普通卷积和DW PW卷积的计算量推导、Residual结构的来源等。同时还讨论了在人脸关键点和检测中的mimic实现方式、pose对人脸关键点的提升作用、目标检测中可能遇到的问题以及处理检测类别冲突的方法。此外,还涉及了对机器学习的了解程度和相似度分析的问题。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
author-avatar
推广中医
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有