《机器学习》周志华-CH2(模型评估与选择)

news2024/11/16 5:38:45

2.1经验误差与过拟合

2.1.1典型的机器学习过程

在这里插入图片描述

2.1.2误差

  当有 m m m个样本,其中 a a a个分类错误,则错误率为 E = a / m E=a/m E=a/m;相应地, 1 − a / m 1-a/m 1a/m称为精度。
在这里插入图片描述

在这里插入图片描述

2.1.3过拟合与欠拟合

  过拟合:学习能力过于强大,不可避免,只能缓解。
  欠拟合:学习能力不足,加大学习。
在这里插入图片描述
  现实中,往往有多种学习算法可供选择,甚至同一算法不同参数配置时,也会产生不同模型。如何选择,即“模型选择”。

  理想解决方案是对候选模型泛化误差进行评估,然后选择泛化误差最小的模型

2.2评估方法

  通过“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为“泛化误差”的近似。
  测试样本:

  • 从样本真实分布中独立同分布采样
  • 与训练集尽可能互斥(未出现,未使用过的)

  eg:你是一个老师,数了学生10道题,你对他进行考核时,肯定不是考这10道题,才能体现他“举一反三”的能力。

  但是,我们只有一个包含 m m m个样例的数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) D = (x_1 ,{y}_{1}),(x_2 ,{y}_{2})...(x_m ,{y}_{m}) D=(x1,y1),(x2,y2)...(xm,ym)如何做到既要训练,又要测试?

  对D适当处理,产生训练集S和测试集T。

在这里插入图片描述

2.2.1留出法

在这里插入图片描述
  “留出法”直接将数据集D划分为两个互斥集合。一个训练集S,一个测试集T。即D=S ∪ \cup T,S ∩ \cap T= ϕ \phi ϕ,S上训练,T上评估。

  eg:D=1000个,训练S=700个,测试T=300个。
测试中有90个出错,错误率为 90 300 ∗ 100 % = 30 % \frac{90}{300}*100\%=30\% 30090100%=30%,精度为 1 − 30 % = 70 % 1-30\%=70\% 130%=70%

  注意,训练/测试划分要尽可能与数据分布一致。

  保留类别比例的采样方式称为“分层采样”

  如 D = 1000 个 = 500 个正 + 500 个反 D=1000个=500个正+500个反 D=1000=500个正+500个反
  则 S = 700 个 = 350 个正 + 350 个反 S=700个=350个正+350个反 S=700=350个正+350个反
  则 T = 300 个 = 150 个正 + 150 个反 T=300个=150个正+150个反 T=300=150个正+150个反

  然而,即便如此分类比例,在实际中先正,先反也会产生不同结果。所以单次“留出法”并不可靠,一般采用若干次随机划分。重复试验取评价。
  常见的方法: 2 3 − 4 5 \frac{2}{3}-\frac{4}{5} 3254样本用于训练,剩余用于测试

2.2.2k-折交叉验证法

在这里插入图片描述
  将数据集 D D D划分为 k k k个大小相似的互斥子集。每个子集 D i {D}_{i} Di都尽可能与数据分布保持一致,即“分层采样”。
即 D = D 1 ∪ D 2 . . . ∪ D k , D i ∩ D j = ϕ ( i ≠ j ) 即D={D}_{1}\cup{D}_{2}...\cup{D}_{k},{D}_{i}\cap{D}_{j}=\phi(i\neq{j}) D=D1D2...Dk,DiDj=ϕ(i=j)
  每次用 k − 1 k-1 k1个子集的并集作为训练集,余下子集为测试集。最终返回 k k k个测试结果的均值。

  又称“k折交叉验证”,k提出取10,称为10折交叉验证
在这里插入图片描述
  将数据集 D D D划分为 k k k个子集同样存在多种划分方式,为减少因样本划分不同而引入的差别,通常要随机使用不同的划分重复 p p p次。最终结果是第 p p p k k k折交叉验证的均值。
常见:“10次10折交叉验证”

特例:留一法
  数据集 D D D中包含 m m m个样本,令 k = m k=m k=m,则每次只留一个测试。留一法不受随机样本划分分布影响。

  • 结果准确(也不全是)
  • 但数据量较大时:计算量太大。
2.2.3自助法

在这里插入图片描述
  以自助采样法为基础,给定包含 m m m个样本的数据集 D D D,采样 D ′ D^{'} D:每次从 D D D中随机选一个样本,放入 D ′ D^{'} D中,然后该样本在 D D D中仍保留,使得该样本下次采样也可能被采到;重复 m m m次,得到包含 m m m个样本的数据集 D ′ D^{'} D D D D中有一部分在 D ′ D^{'} D中重复出现,有一部分从未出现)
  样本在 m m m次采样中始终不被采到的概率:
lim ⁡ m → + ∞ ( 1 − 1 m ) m → 1 e ≈ 0.368 %第一个极限 \lim_{m \to +\infty} {(1-\frac{1}{m})}^{m}\to\frac{1}{e}\approx0.368 m+lim(1m1)me10.368
  数据集 D D D中大约有 36.8 % 36.8\% 36.8%的样本未出现在训练集 D ′ D^{'} D中, D D D\ D ′ {D}^{'} D用作测试集。
  实际评估的模型与期望的评估的模型都使用 m m m个训练本,而我们仍有数据总量约 1 3 \frac{1}{3} 31的、没在训练集中出现,而用于测试。又称包外估计
  使用场合:

  • 数据量小,难以有效划分训练/测试集
  • 此外,能产生多个不同的训练集,对集成学习有益
  • 然而,改变了原始分布,引入估计偏差

  因此,在数据量充足时,留出法、交叉验证法更常用。

2.2.4调参与最终模型

  算法都有些参数需要设定,参数配置不同,模型性能不同。
  参数调节调参

  调参与算法选择本质上是一致的:不同配置得到不同模型,把对应最好的模型参数作为结果。

  实际操作时,参数选定是一个范围加一个变化步长。如 [ 0 , 0.2 ] 以 0.05 [0,0.2]以0.05 [0,0.2]0.05为步长,有 0 , 0.05 , 0.1 , 0.15 , 0.5 0,0.05,0.1,0.15,0.5 0,0.05,0.1,0.15,0.5这5种参数选择。这已经是计算开销和性能估计的折中。

  然而,假定3个参数,每个参数有5种选择,模型将有 5 3 = 125 5^{3}=125 53=125种需要对比。

在这里插入图片描述

2.3性能度量

  用来衡量模型泛化能力的评价标准。
  性能度量反映了任务需求,在对比相同的模型能力时,采用不同的性能度量往往会导致不同的评判结果;模型的“好坏”是相对的。

  预测任务中,样例集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) . . . ( x m , y m ) D = (x_1 ,{y}_{1}),(x_2 ,{y}_{2})...(x_m ,{y}_{m}) D=(x1,y1),(x2,y2)...(xm,ym)其中 y i {y}_{i} yi是示例 x i x_i xi的真实标记。 要评估学习器 f f f的性能,就要预测结果 f ( x ) f(x) f(x)与真实标记 y y y比较。

在这里插入图片描述

2.3.1错误率与精度

在这里插入图片描述

2.3.2查准率、查全率与 F 1 F_{1} F1

在这里插入图片描述
在这里插入图片描述
  在很多情形下,根据预测结果对样例排序,排前面的“最可能”是正例的样本,排后面的“最不可能”是正例的样本。

  按此顺序逐个把样本作为正例进行预测,计算当前P,R值。得到“P-R曲线”,称为“P-R图”

在这里插入图片描述
  若一个学习器的P-R曲线被另一个包住,完全“包住”,则可断言前者优于后者,如 A > C A>C A>C;而 A , B A,B A,B不能随意下定论,只能具体情况具体分析。

  比较合理的方法是对比曲线下面积大小。但不好估算,于是有3个综合考虑查准率、查全率与性能度量。

在这里插入图片描述

  很多时候有多个二分类混淆矩阵
在这里插入图片描述

  希望在 n n n个二分类混淆矩阵上综合考虑查准率、查全率。

  1. 最直接的作法,分别计算各混淆矩阵上的 P P P R R R。记 ( P 1 , R 1 ) , ( P 2 , R 2 ) . . . ( P n , R n ) (P_{1},R_{1}),(P_{2},R_{2})...(P_{n},R_{n}) (P1,R1),(P2,R2)...(Pn,Rn),求平均值。
    在这里插入图片描述
  2. 还可以将各混淆矩阵对应元素平均,得到 T P , F P , T N , F N TP,FP,TN,FN TP,FP,TN,FN的平均值,分别记 T P ‾ , F P ‾ , T N ‾ , F N ‾ \overline{TP},\overline{FP},\overline{TN},\overline{FN} TP,FP,TN,FN.

  再根据这些计算:

在这里插入图片描述

2.3.3 R O C 与 A U C ROC与AUC ROCAUC
  • (Receive Operating Characteristic)受试者工作特征
  • (Area Under ROC Curve)      ROC曲线下面积

  很多学习器是为测试样本产生一个实值或概率预测,将其与分类阈值(threshold)作比较,大于阈值为正类,小于阈值为反类。

  假如将实值或概率排序,“最可能”正例排最前,“最不可能”是正例排最后,分类过程相当于在这个排序中以某个截断点(cut point)将样本分为两部分。

  不同任务,设定不同截断点,若更注重“查准率”,选靠前;反之,若更注重“查全率”,选靠后。

  根据学习器预测结果对样例排序,按此顺序逐个把样本作为正例预测,每次计算两个值:

  • 纵轴“真正例率”(True Positive Rote)
  • 横轴“假正例率”(False Positive Rote)
  • 得“ROC曲线”。

T R R = T P T P + F N F R R = F P T N + F P TRR = \frac{TP}{TP+FN}\quad\quad FRR=\frac{FP}{TN+FP} TRR=TP+FNTPFRR=TN+FPFP

在这里插入图片描述

  绘图过程:给定 m + m^{+} m+个正例, m − m^{-} m个反例,首先根据预测排序,然后将分类阈值设为最大,即把所有的样例均预测为反例,此时 ( 0 , 0 ) (0,0) (0,0).然后,将分类阈值依次设为每个样例预测值,依次将每个样例划分为正例。设前一个标记点坐标为 ( x , y ) (x,y) (x,y).

  • 当前若为真正例,坐标为 ( x , y + 1 m + ) (x,y+\frac{1}{m^{+}}) (x,y+m+1)
  • 当前若为假正例,坐标为 ( x + 1 m − , y ) (x+\frac{1}{m^{-}},y) (x+m1,y)

  学习器比较时,若一个包住另一个,则可说前者优于后者,若有交叉,则分情况,比较合理的判断是比较 R O C ROC ROC曲线下面积,即 A ∪ C A\cup{C} AC
A ∪ C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ∗ ( y i + y i + 1 ) A\cup{C}=\frac{1}{2}\sum_{i=1}^{m-1}(x_{i+1}-x_i)*(y_i+y_{i+1}) AC=21i=1m1(xi+1xi)(yi+yi+1)
  损失

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

  现实中,不同类型错误所造成后果不同。

  eg:

  • 看病如果误诊
  • 门禁如果放进了坏人
  • 挑西瓜买到了不甜的

  为权衡不同类型错误所造成的不同损失,可将错误赋予“非均等代价”(unequal cost);以二分类问题,设定一个“代价矩阵”(cost mattrix)。

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

2.4比较检验

  为什么机器学习中性能比较非常复杂?

  两个学习器不能直接比麻?

  第一:我们希望比较泛化性能,然而实验评估获得的是测试集性能,两者对比结果未必相同。

  第二:测试集上的性能与测试集本身选择有很大关系。测试集大小,或测试集大小一致但样例差异也会导致不同结果。

  第三:很多算法本身有一定的随机性,即使相同参数设置同一个测试集多次运行,结果可能有所不同。

  统计假设检验(hypothesis test)为我们进行学习器性能比较提供了重要依据。

2.4.1假设检验

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode每日一题】——1046.最后一块石头的重量

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 优先队列 二【题目难度】 简单 三【题目编号】 1046.最后一块石头的重量 四【题目描述】 有…

蓝队技能-应急响应篇钓鱼攻击邮件与文件EML还原蠕虫分析线索定性

知识点: 1、应急响应-钓鱼邮件-定性&排查 2、应急响应-恶意文件-应急&分析一、演示案例-蓝队技能-钓鱼攻击-邮件&附件&分析&排查 如何分析邮件安全性: 1、看发信人地址 2、看发信内容信息 3、看发信内容附件 4、看邮件原文源码…

31套科技风PPT模版免费下载

目录 资源名称:31套科技风PPT模板合集资源简介:部分展示:适用人群:资源内容:使用指南:资源下载链接(免费,已设置0个积分下载) 资源名称:31套科技风PPT模板合集…

【人工智能】Transformers之Pipeline(十二):零样本物体检测(zero-shot-object-detection)

目录 一、引言 二、零样本物体检测(zero-shot-object-detection) 2.1 概述 2.2 技术原理 2.3 应用场景 2.4.1 pipeline对象实例化参数 2.4.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言 pipeline(管…

动态规划之买卖股票篇-代码随想录算法训练营第三十八天| 买卖股票的最佳时机ⅠⅡⅢⅣ,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

121. 买卖股票的最佳时机 题目链接:. - 力扣(LeetCode) 讲解视频: 动态规划之 LeetCode:121.买卖股票的最佳时机1 题目描述: 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定…

u盘加密工具哪款U盘加密工具好?6款U盘加密工具分享

数据泄露和非法拷贝成为企业面临的严峻挑战。为了保护敏感数据不被非法复制和传播,市场上涌现出了众多U盘加密工具。 本文将为您介绍六款功能强大、备受好评的U盘加密工具,帮助您选择最适合自己需求的加密解决方案。 1.安企神 它支持Windows、macOS和L…

学习大数据DAY43 Sqoop 安装,配置环境和使用

目录 sqoop 安装 配置 mysql sqoop 安装 sqoop 指令集 sqoop 使用 sqoop 创建 hive 表 sqoop 全量导入表 sqoop 增量导入表 sqoop 全量导出表 sqoop 分区表导入表 sqoop 分区表导出表 上机练习 sqoop 安装 配置 mysql create database test DEFAULT CHARACTER S…

汇编语言:adc指令 和 sbb指令

一. abc 指令 adc (add carry)是带向假想的更高位进位加法指令,它利用了标志寄存器上 CF 标志位记录的进位值。 指令格式:adc 操作对象1, 操作对象2 功能:操作对象1 操作对象1 操作对象2 CF 比如,指令…

Vue2升级Vue3填坑笔记

背景 前段时间使用Vue2完成一个流量回放的前端开发,实现了流量回放的基本功能。开发过程中,发现现主流的插件都在适配Vue3,奈何为了赶进度,只能先用自己熟悉的Vue2先顶上。恰巧最近有些许空余时间,就把项目代码逐步变…

基于单片机的人体健康监测系统的设计

本设计以STM32F103C8T6单片机作为主控,通过MAX30102采集心率、血氧值,通过MSP20血压采集模块检测血压值,通过MLX90614红外体温采集模块检测体温值。OLED屏可以显示以上检测的信息,并可以通过蓝牙模块将信息发送给手机APP。当检测值…

【QAMISRA】解决永久license文件替换后未生效的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决浮动版永久license文件替换后未生效的问题。 2、 问题场景 客户替换永久版license文件且重启lserv服务后,license信息还是原来临时license的信息。 3、软硬件环境 1、软件版本: QA-MIS…

Android车载蓝牙音乐实例(附Demo源码):实现手机播放音乐后车机应用显示音乐名称,歌手,专辑名。且可控制上一曲下一曲,暂停播放功能

一、功能需求 功能需求是在Android10以上设备上实现蓝牙音乐功能,细分为两个功能点: 1、手机和车载设备实现蓝牙连接 (本Demo文只做监听蓝牙连接状态,需手动到设置中连接蓝牙) 2、连接蓝牙成功后手机播放音乐时车载…

【python报错已解决】“IndexError: list index out of range”

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 你是否在处理Python列表时遇到了“IndexError: list index out of range”的错误?这个错误可能会让你的程序中…

51单片机最快能生成多高频率的方波?

前言 在嵌入式系统开发中,51 单片机作为一种非常非常非常经典,贯穿上下几十年的微控制器,被广泛应用于各种电子项目中。其中,生成特定频率的方波信号是一项常见的需求。 那么,51 单片机究竟能以多快的速度生成方波呢&…

STM32——GPS模块(GY-NEO-6M)

1连接 1-1 使用 USB-TTL 工具,安装好驱动,可以在”设备管理器看到对应COM”按照如下链接测试模块: USB-TTL GPS 模块 3.3V--------------------------------->VCC GND------------------------------>GND RXD--------------------…

应用程自定义协议与序列化反序列化

本篇将主要介绍在应用层中自定义的协议,自定义协议的同时还需要将我们的数据继续序列化和反序列化,所以本篇的重点为序列化、反序列化的原因以及如何自定义协议,接着探讨了关于为什么 tcp 协议可以支持全双工协议。还根据用户自定义协议结合 …

⼆⼿⻋交易系统前景分析

二手车交易系统开发小程序在当前市场中具有显著的优势和潜力。以下是对二手车交易系统小程序功能的综合分析: 车辆信息展示:小程序应提供详细的车辆信息展示,包括车辆的图片、品牌、型号、年份、里程数、价格等关键信息,方便用户…

Python爬虫—常用的网络爬虫工具推荐

以下列举几个常用的网络爬虫工具 1. 八爪鱼(Bazhuayu) 简介: 八爪鱼是一款面向非技术用户的桌面端爬虫软件,以其可视化操作和强大的模板库而受到青睐。它支持从各种网站上抓取数据,包括文本、图片、文档等&#xff…

特殊类设计和类型转换

前言 这一篇博客我们讲特殊类设计和类型转换 1. 特殊类设计 1.1 请设计一个类,不能被拷贝 这个比较简单 第一种方法就是将赋值和拷贝构造只定义不声明然后设置为私有就可以了 第二种方法就是直接令它为delete 1.2 请设计一个类,只能在堆上创建对象 …

自学成才:通过自学成为软件开发者——之入行成为软件开发者

一些优秀的程序员,可能以前从事的是其他职业,他们大都发现工作中的很多固定化的流程内容,如果可以实现自动化,不仅效率能够得到提高和保证,提高自己的生成力,同时自己也会从中释放出来,有更多的…