【机器学习】一、机器学习概述与模型的评估、选择

机器学习简介

由来

阿瑟.萨缪尔Arthur Samuel,1952年研制了一个具有自学习能力的西洋跳棋程序,1956年应约翰.麦卡锡John McCarthy(人工智能之父)之邀,在标志着人工智能学科诞生的达特茅斯会议上介绍这项工作。他发明了“机器学习”这个词,将其定义为“不显示编程地赋予计算机能力的研究领域”。

假设空间hypothesis space

在这里插入图片描述

版本空间version space

在这里插入图片描述

归纳偏好inductive bias

机器学习算法在学习过程中对某种类型假设的偏好。如果没有偏好,产生的模型每次在进行预测时随机抽选训练集上的等效假设,那么对这个新输入,学得模型时而告诉我们它是好的、时而告诉我们它是不好的,这样的学习结果显然没有意义。

归纳偏好对应了学习算法本身所做出的关于"什么样的模型更好"的假设。在具体的现实问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。

“奥卡姆剃刀”Occam’s razor

常用的、自然科学研究中最基本的原则,即“若有多个假设与观察一致,则选最简单的那个”(在回归学习中一般认为更平滑意味着更简单)

“没有免费的午餐”定理No Free Lunch Theorm,NFL

无论学习算法1多聪明、学习算法2多笨拙,他们的总误差与学习算法无关,期望性能相同。

→ 若考虑所有潜在问题,则所有学习算法都一样好,要谈论算法的相对优劣,必须针对具体的学习问题,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性作用。

机器学习5种学习方法

1、监督学习supervised learning:是利用已知类别的样本(即有标记的样本 labeled sample,已知其相应的类别),调整分类器的参数,训练得到一个最优模型,使其达到所要求性能,再利用这个训练后的模型,将所有的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,这样,即可以对未知数据进行分类。
2、无监督学习unsupervised learning:把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。
3、半监督学习semi-supervised learning:处在监督学习和无监督学习之间的是半监督学习。Semi-Supervised Learning中使用的数据,有一部分是标记过的,而大部分是没有标记的。因此和监督学习相比,半监督学习的成本较低,但是又能达到较高的准确度。
4、强化学习reinforcement learning:所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。(相当于先无监督后有监督)
5、迁移学习transfer learning:考虑到大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的参数(parameter)分享给新模型从而加快并优化模型的学习,不用像之前那样从零开始,把已训练好的模型参数迁移到新的模型来帮助新模型训练数据集。

模型评估与选择

错误率error rate,精度accuracy,误差error,训练误差training error/经验误差empirical error(在训练集上的误差),泛化误差generalization error(在新样本上的误差)

过拟合overfitting(当学习器把训练样本学的太好了的时候,可能已经把训练样本本身的一些特点当做了所有潜在样本都会具有的一般性质,导致泛化性能下降→无法彻底避免,只能减小其风险)
欠拟合underfitting(对训练样本的一般性质尚未学好→容易克服)

模型选择问题model selection(选用哪个学习算法、使用哪种参数配置)
→无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准,那么,在现实中如何进行模型评估与选择呢?

2.1评估

分“测试集(验证集)”和“训练集”,以测试集上的“测试误差testing error”作为泛化误差的近似

留出法:直接将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T,划分尽可能保持数据分布的一致性,并且常见做法将大约2/3~4/5的样本用于训练,剩余样本用于测试
交叉验证法:将数据集D划分为k个大小相似的互斥子集,每次用k-1个子集作为训练集,余下的一个作为测试集,这样获得的k个测试结果取均值,k常取10
自助法:以自助采样法bootstrap sampling为基础,给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集 D’,通过自助采样,初始数据集D中约有36.8%的样本未出现在D’中,于是可用D’做训练集,D\D’做测试集

调参parameter tuning与最终模型

在模型选择完成后,学习算法和参数配置已选定,此时应用数据集D重新训练模型,这个模型在训练过程中使用了所有m个样本,才是最终提交给用户的模型。另外,通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集通常称为“验证集validation set”

性能度量performance measure

衡量模型泛化能力的评价标准

回归任务常用“均方误差mean squared error”
分类任务常用:错误率、精度、查准率precision:、查全率recall:、平衡点Break-Event Point(BEP,查准率=查全率时的取值,例如图中A优于B)、F1(基于查准率与查全率的调和平均:)、Fβ(F1度量的一般形式,加权调和平均,其中β>0度量了查全率对查准率的相对重要性,β=1时退化为标准的F1,β>1时查全率有更大影响,β<1时查准率有更大影响:)、受试者工作特征曲线ROC(Receiver Operating Characteristic,纵轴为真正例率,横轴为假正例率)
混淆矩阵confusion matrix:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
非均等代价unequal cost(为权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”)、代价矩阵cost matrix:
在这里插入图片描述
损失程度相差越大,cost01与cost10值的差别越大。一般情况下,重要的是代价比值而非绝对值,例如cost01:cost10=5:1与50:10所起效果相当。
→希望最小化总体代价total cost

代价敏感cost-sensitive错误率(以表2.2中第0类作为正类、第1类作为反类,D+与D-分别代表样例集D的正例子集和反例子集):
在这里插入图片描述
代价曲线cost curve:
在这里插入图片描述

比较检验

比较泛化性能,而通过试验评估方法获得的是测试性能,两者的对比结果可能未必相同(以错误率为性能度量为例):

→ 统计假设检验hypothesis test:
在这里插入图片描述
→ 交叉验证t检验(成对t检验paired t-tests):基本思想是若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同,即

为缓解“由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度的重叠,使得测试错误率实际上并不独立,会导致过高估计假设成立的概率”的问题,采用5×2交叉验证法

→ McNemar检验:
在这里插入图片描述
→ Friedma检验与Nemenyi后续检验:
在一组数据集上对多个算法进行比较
在这里插入图片描述
偏差-方差分解bias-variance decomposition:解释学习算法泛化性能的一种重要工具

泛化误差可分解为偏差(期望预测与真实结果的偏离程度,刻画学习算法本身的拟合能力)、方差(同样大小的训练集的变动导致的学习性能的变化,刻画数据扰动所造成的影响)与噪声(当前任务上任何学习算法所能达到的期望泛化误差的下界,刻画学习问题本身的难度)之和:
在这里插入图片描述
偏差-方差窘境bias-variance dilemma(一般偏差和方差是有冲突的)
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GitHub项目监控

目录 github开放平台接口限流 监控某个仓库的更新状态 对于常用Github的用户来说&#xff0c;经常有一些自动化的需求。比如监控某些项目的更新情况并实时拉取&#xff0c;比如监控github全网上传的代码是否携带了公司的APIKEY&#xff0c;SECRETKEY等… github开放平台 gith…

线性代数 第一章 行列式

一、概念 不同行不同列元素乘积的代数和&#xff08;共n!项&#xff09; 二、性质 经转置行列式的值不变&#xff0c;即&#xff1b; 某行有公因数k&#xff0c;可把k提到行列式外。特别地&#xff0c;某行元素全为0&#xff0c;则行列式的值为0&#xff1b; 两行互换行列式…

STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结

目录 1.电机模块开发 1.1 让小车动起来 1.2 串口控制小车方向 1.3 如何进行小车PWM调速 1.4 PWM方式实现小车转向 2.循迹小车 2.1 循迹模块使用 2.2 循迹小车原理 2.3 循迹小车核心代码 2.4 循迹小车解决转弯平滑问题 3.跟随/避障小车 3.1 红外壁障模块分析​编辑 …

SpringCloud Gateway实现请求解密和响应加密

文章目录 前言正文一、项目简介二、核心代码2.1 自定义过滤器2.2 网关配置2.3 自定义配置类2.4 加密组件接口2.5 加密组件实现&#xff0c;AES算法2.6 启动类&#xff0c;校验支持的算法配置 三、请求报文示例四、测试结果4.1 网关项目启动时4.2 发生请求时 前言 本文环境使用比…

跨国文件传输为什么要用专业的大文件传输软件?

跨国文件传输是许多跨国企业需要的基础工作&#xff0c;对于传输的质量和速度要求也是很严格的&#xff0c;随着数据量的不断增加&#xff0c;寻常传统的传输方式肯定是不行&#xff0c;需要新的技术和方式来进行传输&#xff0c;大文件传输软件应运而出&#xff0c;那它有什么…

软考中项集成如何画图?计算题怎么考的?

2023下半年软考集成一共考6个批次&#xff0c;10月28日、29日软考集成考了第一、二、三、四批次&#xff0c;11月4日软考集成再考第五批和第六批。 先说一下通过10.28-29得出的软考机考注意事项&#xff1a; 1、草稿纸不能自带&#xff0c;考试现场会发放草稿纸&#xff0c;草…

钡铼技术ARM工控机在机器人控制领域的应用

ARM工控机是一种基于ARM架构的工业控制计算机&#xff0c;用于在工业自动化领域中进行数据采集、监控、控制和通信等应用。ARM&#xff08;Advanced RISC Machine&#xff09;架构是一种低功耗、高性能的处理器架构&#xff0c;广泛应用于移动设备、嵌入式系统和物联网等领域。…

关于pytorch张量维度转换及张量运算

关于pytorch张量维度转换大全 1 tensor.view()2 tensor.reshape()3 tensor.squeeze()和tensor.unsqueeze()3.1 tensor.squeeze() 降维3.2 tensor.unsqueeze(idx)升维 4 tensor.permute()5 torch.cat([a,b],dim)6 torch.stack()7 torch.chunk()和torch.split()8 与tensor相乘运算…

预处理详解(一)

1 预定义符号 __FILE__ //进行编译的源文件 __LINE__ //文件当前的行号 __DATE__ //文件被编译的日期 __TIME__ //文件被编译的时间 __STDC__ //如果编译器遵循ANSI C&#xff0c;其值为1&#xff0c;否则未定义 这些预定义符号都是…

Linux纯C串口开发

为什么要用纯C语言 为了数据流动加速&#xff0c;实现低配CPU建立高速数据流而不用CPU干预&#xff0c;避免串口数据流多次反复上升到软件应用层又下降低到硬件协议层。 关于termios.h 麻烦的是&#xff0c;在 Linux 中使用串口并不是一件最简单的事情。在处理 termios.h 标头…

怎么检测开关电源质量的好坏?测试的方法是什么?

开关电源的工作原理 开关电源(简称SMPS)是常见的一种电源供应器&#xff0c;是高频化的电能转换装置&#xff0c;可以将电压透过不同形式的架构转换为用户端所需求的电压或电流。具有体积小、功耗小、效率高、高可靠性的特点&#xff0c;被广泛应用在工业、军工设备、科研设备、…

机器学习---支持向量机的初步理解

1. SVM的经典解释 改编自支持向量机解释得很好 |字节大小生物学 (bytesizebio.net) 话说&#xff0c;在遥远的从前&#xff0c;有一只贪玩爱搞破坏的妖怪阿布劫持了善良美丽的女主小美&#xff0c;智勇双全 的男主大壮挺身而出&#xff0c;大壮跟随阿布来到了妖怪的住处&…

Docker compose容器编排

Docker compose容器编排 1、Docker compose简介 docker-compose是docker的编排工具&#xff0c;用于定义和运行一个项目&#xff0c;该项目包含多个docker容器&#xff0c;在如今的微服务时代&#xff0c;一个项目会存在多个服务&#xff0c;使用docker一个个部署操作的话就会…

React中的状态管理

目录 前言 1. React中的状态管理 1.1 本地状态管理 1.2 全局状态管理 Redux React Context 2. React状态管理的优势 总结 前言 当谈到前端开发中的状态管理时&#xff0c;React是一个备受推崇的选择。React的状态管理机制被广泛应用于构建大型、复杂的应用程序&#xf…

计算机毕业设计选题推荐-超市售货微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

注册中心ZK、nameServer、eureka、Nacos介绍与对比

前言 注册中心的由来 微服务架构是存在着很多跨服务调用,每个服务都存在着多个节点,如果有多个提供者和消费者,当提供者增加/减少或者消费者增加/减少,双方都需要感知发现。所以诞生了注册中心这个中间件。 市面上有很多注册中心,如 Zookeeper、NameServer、Eureka、Na…

OpenCV 笔记(4):图像的算术运算、逻辑运算

Part11. 图像的算术运算 图像的本质是一个矩阵&#xff0c;所以可以对它进行一些常见的算术运算&#xff0c;例如加、减、乘、除、平方根、对数、绝对值等等。除此之外&#xff0c;还可以对图像进行逻辑运算和几何变换。 我们先从简单的图像加、减、逻辑运算开始介绍。后续会有…

企业 Tomcat 运维 部署tomcat反向代理集群

一、Tomcat 简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c; Tomcat和Nginx、Apache(httpd)、Web服务器一样&#xff0c;具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器 一个tomcat默认并…

ip划分与私公网ip、ip的传递

报文问路&#xff1a;1、不知道跳转默认路由器&#xff0c;2、知道路径&#xff0c;向对应路径发出报文&#xff0c;3、路口路由器&#xff0c;下一步就是目标主机在哪。 想要通信必须同在一个局域网&#xff0c;其实将公网就可以看作一个大型的局域网。 在同一个局域网内发送…

61. 旋转链表、Leetcode的Python实现

博客主页&#xff1a;&#x1f3c6;李歘歘的博客 &#x1f3c6; &#x1f33a;每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点&#xff0c;以及职场小菜鸡的生活。&#x1f33a; &#x1f497;点关注不迷路&#xff0c;总有一些&#x1f4d6;知识点&am…