热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

ML笔记——CH2模型的评估与选择

仅个人读书笔记.本章介绍了1.学习模型的学习目的、学习方法,如何选择学习模型;2.如何调参;3.评估的方法和依据的性能指标.第2章模型的评

仅个人读书笔记.

本章介绍了
1.学习模型的学习目的、学习方法,如何选择学习模型;
2.如何调参;
3.评估的方法和依据的性能指标.


第2章 模型的评估与选择

  • 2.1 经验误差与过拟合
  • 2.2 评估方法
    • 2.2.1 留出法
    • 2.2.2 交叉验证法
    • 2.2.3 自助法
    • 2.2.4 调参与最终模型
  • 2.3 性能度量
    • 2.3.1 错误率与精度
    • 2.3.2 查准率、查全率与F1
    • 2.3.3 ROC与AUC(~)
    • 2.3.4 代价敏感错误率与代价曲线
  • 2.4 比较检验(~)
  • 2.5 偏差、方差、噪声
  • -习题


2.1 经验误差与过拟合

错误率:把分类错误的样本数占样本总数的比例。即如果在m个样本中有a个样本分类错误,则错误率E=a/m
精度=1-错误率"
误差:学习器的实际预测输出与样本的真实输出之间的差异,
训练误差:学习器在训练集上的误差
泛化误差:在新样本上的误差

学习的目的:学得一个在新样本上能表现得很好的学习器
实现方法:应该从训练样本中尽可能学出适用于所有潜在样本的"普遍规律",这样才能在遇到新样本时做出正确的判别
出现的问题:当学习器把训练样本学得"太好"了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降

过拟合:学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了(过拟合无法彻底避免)
欠拟合:由于学习能力低下而造成的(欠拟合比较容易克服,如:在NN中增加训练轮数)

模型选择:基于以上问题,学习过程中有多种学习算法供选择,甚至对同一个学习算法,当使用不同的参数配置时也会产生不同的模型
理想方案:对候选模型的泛化误差进行评估,然后选择泛化误差最小的那个模型
存在问题:我们无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准

2.2 评估方法

Q:在现实中如何进行模型评估与选择呢?
A:可通过实验测试来对学习器的泛化误差进行评估并进而做出选择

测试集:测试学习器对新样本的判别能力(测试样本:从样本真实分布中独立同分布采样而得)
测试误差:作为泛化误差的近似
注意:测试集应该尽可能与训练集互斥, 即测试样本尽量不在训练集中出现,未在训练过程中使用过,否则评估结果会过于乐观

2.2.1 留出法

方法:直接将数据集 D 划分为两个互斥的集合,其中一个作为训练集,另一个作为测试集

举例:以二分类任务为例,假定 D包含1000个样本,将其划分为S包含 700 个样本,T包含 300 个样本,用 S 进行训练后,如果模型在 T 上有 90 个样本分类错误,那么其错误率为 (90/300) x 100% = 30%

数据分布一致性:训练/测试集的划分要尽可能保持数据分布的一致性,避免因划分过程而引入额外偏差

多种划分方式:即使在给定训练/测试集的样本比例后,仍存在多种划分方式对初始数据集D进行分割。这些不同的划分将导致不同的训练/测试集,相应的,模型评估的结果也会有差别.

评估结果:单次使用留出法得到的估计结果往往不够稳定可靠,使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果

比例选择:没有完美的划分方法,通常选择2/3~4/5

2.2.2 交叉验证法

方法:先将数据集D划分为k个大小相似的互斥子集,每个子集 Di 都尽可能保持数据分布的一致性,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样就可获得k组训练/测试集

多种划分方式:k 折交叉验证通常要随机使用不同的划分重复p次,共训练p*k次

留一法:交叉验证法的一个特例,留一法不受随机样本划分方式的影响,训练开销太大,往往不采用

评估结果:是这p次k折交叉验证结果的均值

2.2.3 自助法

解决问题:以减少训练样本规模不同造成的估计偏差,同时还能比较高效地进行实验估计

适用场合:自助法能从初始数据集中产生多个不同的训练集,在数据集较小、难以有效划分训练/测试集时很有用。然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,因此,在初始数据量足够时,留出法和交叉验证法更常用一些.

2.2.4 调参与最终模型

为什么要调参:在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定

如何调参:对每个参数选定一个范围和变化步长,然后选定最终的几个候选值

验证集的引入:三集的区别?
训练集——用于模型拟合的数据样本。(学习课本知识)
验证集——从训练集中划分出来,用于调整模型的超参数和用于对模型的能力进行初步评估。(通过课后作业掌握学习情况)
测试集——用来评估模最终模型的泛化能力。是与训练集和验证集互斥的数据(通过水平测试检验学习成果,是否能举一反三)

2.3 性能度量

2.3.1 错误率与精度

适用场合:这是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务
缺点:不能满足所有的任务需求

2.3.2 查准率、查全率与F1

对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例、假正例、真反例 、 假反例四种情形,令 TP、 FP、 TN、 FN 分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数
在这里插入图片描述
查准率 P 与查全率 R:
在这里插入图片描述
查准率和查全率是一对矛盾的度量.一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低.

举例:若希望将好瓜尽可能多地选出来
可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比例尽可能高,则可只挑选最有把握的瓜, 但这样就难免会漏掉不少好瓜,使得查全率较低。

P-R曲线:以查准率为纵轴、查全率为横轴作图
在这里插入图片描述如何根据P-R曲线判断学习器的优劣?
(1)若一个学习器的 P-R 曲线被另一个学习器的曲线完全==“包住”== , 则可断言后者的性能优于前者
(2)如果两个学习器的 P-R 曲线发生了交叉,例如图2.3 中的 A 与 B,则:
1)可以通过“平衡点(BEP)”进行度量,它是"查准率=查全率"时的取值;

2)更常用的是F1度量:Fl 是基于查准率与查全率的调和平均定义的
在这里插入图片描述
3)F1 度量的一般形式为Fß(加权调和平均),能让我们表达出对查准率/查全率的不同偏好(在不同应用场景中,对P和R的重视程度不一样),它定义为:
在这里插入图片描述
ß>0度量了查全率对查准率的相对重要性&#xff0c;ß> 1 时查全率有更大影响; ß <1 时查准率有更大影响.

另一种情况&#xff1a;当有多个二分类混淆矩阵时&#xff0c;如&#xff1a;执行多分类任务&#xff0c;每两两类别的组合都对应一个混淆矩阵&#xff0c;需要在 n 个二分类混淆矩阵上综合考察查准率和查全率

解法1&#xff1a;先在各混淆矩阵上分别计算出查准率和查全率&#xff0c;再计算平均值

解法2&#xff1a;可先将各混淆矩阵的对应元素进行平均&#xff0c;得到 TP、 FP、 TN、 FN 的 平均值&#xff0c;再基于这些平均值计算出结果

2.3.3 ROC与AUC&#xff08;~&#xff09;

截断点&#xff1a;学习器是为测试样本产生一个实值或概率预测&#xff0c;然后将这个预测值与一个分类阔值&#xff08;截断点&#xff09;进行比较&#xff0c;若大于阈值则分为正类&#xff0c;否则为反类。在不同的应用任务中&#xff0c;我们可根据任务需求来采用不同的截断点

有点难懂啊&#xff0c;挂一下大家的解释吧
如何理解机器学习和统计中的AUC&#xff1f;
AUC含义的通俗理解

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


2.4 比较检验&#xff08;~&#xff09;

&#xff08;假设检验、交叉验证t检验、McNemar 检验、Friedman 检验与 Nemenyi 后续检验&#xff09;

2.5 偏差、方差、噪声

偏差&#xff1a;度量了学习算法的期望预测与真实结果的偏离程度&#xff0c;即刻画了学习算法本身的拟合能力

方差&#xff1a;度量了同样大小的训练集的变动所导致的学习性能的变化&#xff0c;即刻画了数据扰动所造成的影响

噪声&#xff1a;表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界&#xff0c;即刻画了学习问题本身的难度

偏差一方差分解说明&#xff1a;泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的.

好的泛化性能&#61;偏差较小&#xff08;能充分拟合数据&#xff09;&#43; 方差较小&#xff08;数据扰动的影响小&#xff09;

泛化错误率的主导因素的变化&#xff1a;学习器的拟合能力随着学习算法的训练程度而变化&#xff0c;拟合能力不够强时&#xff0c;偏差主导了泛化错误率&#xff0c;拟合能力非常强时&#xff0c;方差主导了泛化的错误率

-习题

第2章 习题答案入口


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在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完胜人类冠军。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
author-avatar
x75066882
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有