热门标签 | 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章 习题答案入口


推荐阅读
  • 线性Kalman滤波器在多自由度车辆悬架主动控制中的应用研究
    本文探讨了线性Kalman滤波器(LKF)在不同自由度(2、4、7)的车辆悬架系统中进行主动控制的应用。通过详细的仿真分析,展示了LKF在提升悬架性能方面的潜力,并总结了调参过程中的关键要点。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  •   上一篇博客中我们说到线性回归和逻辑回归之间隐隐约约好像有什么关系,到底是什么关系呢?我们就来探讨一下吧。(这一篇数学推导占了大多数,可能看起来会略有枯燥,但这本身就是一个把之前算法 ... [详细]
  • 深入理解K近邻分类算法:机器学习100天系列(26)
    本文详细介绍了K近邻分类算法的理论基础,探讨其工作原理、应用场景以及潜在的局限性。作为机器学习100天系列的一部分,旨在为读者提供全面且深入的理解。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 随着生活节奏的加快和压力的增加,越来越多的人感到不快乐。本文探讨了现代社会中导致人们幸福感下降的各种因素,并提供了一些改善建议。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 叶酸聚乙二醇羧基化合物(FA-PEG-COOH)
    本产品为叶酸修饰的聚乙二醇羧基衍生物,英文名称为FA-PEG-COOH或Folic acid-PEG-acid。其分子量范围包括1k、2k、3.4k、5k、10k和20k,并可根据客户需求定制。该化合物适用于科研实验,具有高纯度和良好的水溶性。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
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社区 版权所有