机器学习-3

文章目录

  • 前言
    • 训练
    • 验证
    • 测试
    • 评估
    • 评估方法
    • 交叉验证法
    • 自助法
    • 评估指标
  • 练习题


前言

本篇介绍机器学习中的训练、验证、测试与评估的相关概念。


训练

从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成.训练过程中使用的数据称为“训练数据”(training data),其中每个样本称为一个“训练样本”(training sample),训练样本组成的集合称为“训练集”(training set).

验证

在现实任务中,我们往往有多种学习算法可供选择,甚至对同一个学习算法,当使用不同的参数配置时,也会产生不同的模型.那么,我们该选用哪一个学习算法、使用哪一种参数配置呢?这就是机器学习中的“模型选择”(modelselection)问题.这时候,我们对学习出来的模型,微调他们的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。

测试

通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择.为此,需使用一个“测试集”(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似.通常我们假设测试样本也是从样本真实分布中独立同分布采样而得.但需注意的是,测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过.

评估

机器学习领域中,对模型的评估同样至关重要,只有选择与问题相匹配的评估方法,才能快速地发现模型选择或训练过程中出现的问题,迭代地对模型进行优化。模型评估主要分为离线评估和在线评估两个阶段。针对分类、排序、回归、序列预测等不同类型的机器学习问题,评估指标的选择也有所不同。知道每种评估指标的精确定义、有针对性地选择合适的评估指标、更具评估指标的反馈进行模型调整,这些都是模型评估阶段的关键问题。

我们把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”(error),学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上的误差称为“泛化误差”(generalizationerror).显然,我们希望得到泛化误差小的学习器.

通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择.为此,需使用一个测试集来测试学习器对新样本的判别能力,然后以测试集上的误差作为泛化误差的近似.

评估方法

留出法
“留出法”(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T.在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计.

交叉验证法

“交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集.每个子集D都尽可能保持数据分布的一致性,即从D中通过分层采样得到.然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值.显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,为强调这一点,通常把交叉验证法称为“k折交叉验证”(k-fold crossvalidation).k最常用的取值是10,此时称为10折交叉验证;其他常用的k值有5、20等.下图为10折交叉验证的示意图.
,
假定数据集D中包含m个样本,若令k = m ,则得到了交叉验证法的一个特例:留一法(Leave-One-Out,简称LOO).显然,留一法不受随机样本划分方式的影响。

自助法

给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果。
自助法在数据集较小难以有效划分训练集和测试集时很有用。

评估指标

准确率(Accuracy)的定义是:对于给定的测试集,分类模型正确分类的样本数与总样本数之比;

精确率(Precision)的定义是:对于给定测试集的某一个类别,分类模型预测正确的比例,或者说:分类模型预测的正样本中有多少是真正的正样本;

召回率(Recall)的定义为:对于给定测试集的某一个类别,样本中的正类有多少被分类模型预测正确召回率的定义为:对于给定测试集的某一个类别,样本中的正类有多少被分类模型预测正确;

F1_score,在理想情况下,我们希望模型的精确率越高越好,同时召回率也越高越高,但是,现实情况往往事与愿违,在现实情况下,精确率和召回率像是坐在跷跷板上一样,往往出现一个值升高,另一个值降低,那么,有没有一个指标来综合考虑精确率和召回率了,这个指标就是F1值。F1值的计算公式为:
,


练习题

1、通过作业可以知道不同学生学习情况、进步的速度快慢这一过程属于以下哪种?
A、训练
B、验证
C、测试
D、评估

2、常用的评估方法有哪些?
A、k折交叉验证
B、自助法
C、留出法

3、____在数据集较小难以有效划分训练集和测试集时很有用。
A、留出法
B、自助法
C、k折交叉验证法

4、评价指标有以下哪几种?
A、召回率(Recall)
B、准确率(Accuracy)
C、F1_score
D、精确率(Precision)

5、学习器在训练集上的误差称为____,在新样本上的误差称为____.
A、“泛化误差”(generalizationerror),“训练误差”(training error)
B、“训练误差”(training error),“泛化误差”(generalizationerror)

6、k折交叉验证是留一法的特例,这种表达正确吗?
A、正确
B、不正确

参考答案:
1.B
2.ABC
3.B
4.ABCD
5.B
6.B

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

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

相关文章

Android T 远程动画显示流程其三——桌面侧动画启动到系统侧结束流程

前言 接着前文分析Android T 远程动画显示流程其二 我们通过IRemoteAnimationRunner跨进程通信从系统进程来到了桌面进程,这里是真正动画播放的逻辑。 之后又通过IRemoteAnimationFinishedCallback跨进程通信回到系统进程,处理动画结束时的逻辑。 进入…

使用maven项目引入jQuery

最近在自学 springBoot ,期间准备搞一个前后端不分离的东西,于是需要在 maven 中引入jQuery 依赖,网上百度了很多,这里来做一个总结。 1、pom.xml 导入依赖 打开我们项目的 pom.xml 文件,输入以下坐标。这里我使用的是…

FPGA-学会使用vivado中的存储器资源ROM(IP核)

问题: 某芯片,有500个寄存器,需要在上电的时候由FPGA向这些寄存器中写入初始值,初始值已经通过相应的文档给出了具体值,这些值都是已知的。 分析关键点: 数据量比较多(Verilog代码,通过case语句、always语句这种查找表的方式,数…

Linux——匿名管道

Linux——匿名管道 什么是管道匿名管道的底层原理观察匿名管道现象读写端的几种情况写端慢,读端快写端快,读端慢 管道的大小写端关闭,读端一直读写端一直写,读端关闭 我们之前一直用的是vim来编写代码,现在有了vscode这…

bert 相似度任务训练,简单版本

目录 任务 代码 train.py predit.py 数据 任务 使用 bert-base-chinese 训练相似度任务,参考:微调BERT模型实现相似性判断 - 知乎 参考他上面代码,他使用的是 BertForNextSentencePrediction 模型,BertForNextSentencePred…

thinkphp学习10-数据库的修改删除

数据修改 使用 update()方法来修改数据,修改成功返回影响行数,没有修改返回 0 public function index(){$data [username > 孙悟空1,];return Db::name(user)->where(id,11)->update($data);}如果修改数据包含了主键信息,比如 i…

STM32标准库开发——BKP备份RTC时钟

备份寄存器BKP(Backup Registers) 由于RTC与BKP关联性较高,所以RTC的时钟校准寄存器以及一些功能都放在了BKP中。TAMPER引脚主要用于防止芯片数据泄露,可以设计一个机关当TAMPER引脚发生电平跳变时自动清除寄存器内数据不同芯片BKP区别,主要体…

c++入门(2)

上期我们说到了部分c修补C语言的不足,今天我们将剩下的一一说清楚。 函数重载 (1).函数重载的形式 C语言不允许函数名相同的同时存在,但是C允许同名函数存在,但是有要求:函数名相同,参数不同,构成函数重…

【数据结构-图论】并查集

并查集(Union-Find)是一种数据结构,它提供了处理一些不交集的合并及查询问题的高效方法。并查集主要支持两种操作: 查找(Find):确定某个元素属于哪个子集,这通常意味着找到该子集的…

vue购物车实战

1.引入vue <script src"https://cdn.jsdelivr.net/npm/vue2.7.14/dist/vue.js"></script> 2.设置高亮部分的样式 <style> table tr{text-align: center;}.skyblue{background-color: skyblue;}</style> 3.设置body的基本样式 <div id&q…

人大金仓与mysql的差异与替换

人大金仓中不能使用~下面的符号&#xff0c;字段中使用”&#xff0c;无法识别建表语句 创建表时语句中只定义字段名.字段类型.是否是否为空 Varchar类型改为varchar&#xff08;长度 char&#xff09; Int(0) 类型为int4 定义主键&#xff1a;CONSTRAINT 键名 主键类型&#x…

Found option without preceding group in config file 问题解决

方法就是用记事本打开 然后 左上角点击 文件 有另存为 就可以选择编码格式

Linux设置程序任意位置执行(设置环境变量)

问题 直接编译出来的可执行程序在执行时需要写出完整路径比较麻烦&#xff0c;设置环境变量可以实现在任意位置直接运行。 解决 1.打开.bashrc文件 vim ~/.bashrc 2.修改该文件&#xff08;实现将/home/zhangziheng/file/seqrequester/build/bin&#xff0c;路径下的可执…

文件流【文件输入流】

文件流&#xff1a;使用文件输入流读取文件中的数据&#xff1a; public class FISDemo {public static void main(String[] args) throws IOException {//将fos.dat文件中的字节读取回来/*fos.dat文件中的数据:00000001 00000010*/FileInputStream fis new FileInputStream(…

第六节:Vben Admin权限-后端控制方式

系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 第五节:Vben Admin权限-前端控制方式 文章目录 系列文章目录前言一、角色权限(后端…

Java面试题总结6

Spring中有哪些设计模式 简单工厂&#xff1a;由一个工厂类根据传入的参数&#xff0c;动态决定应该创建哪一个产品类 工厂方法&#xff1a;实现FactoryBean接口的bean是一类叫做factory的bean 单例模式&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全…

【办公类-18-03】(Python)中班米罗可儿证书批量生成打印(班级、姓名)

作品展示——米罗可儿证书打印幼儿姓名 背景需求 2024年3月1日&#xff0c;中4班孩子一起整理美术操作材料《米罗可儿》的操作本——将每一页纸撕下来&#xff0c;分类摆放、确保纸张上下位置正确。每位孩子们都非常厉害&#xff0c;不仅完成了自己的一本&#xff0c;还将没有…

C++数据结构与算法——二叉搜索树的属性

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

C++编程面试复盘:数组降重+快排+函数指针+类模板

面试真题 真题1 #include <iostream> // 在函数 find_repetnum 的参数列表中&#xff0c;int& length 中的 & 符号表示引用。通过将 length 声明为引用&#xff0c;函数可以修改传入的 length 变量的值&#xff0c;并且这种修改会在函数外部生效。 void find_r…

Vue2:路由history模式的项目部署后页面刷新404问题处理

一、问题描述 我们把Vue项目的路由模式&#xff0c;设置成history 然后&#xff0c;build 并把dist中的代码部署到nodeexpress服务中 访问页面后&#xff0c;刷新页面报404问题 二、原因分析 server.js文件 会发现&#xff0c;文件中配置的路径没有Vue项目中对应的路径 所以…