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

机器学习简介

由来

阿瑟.萨缪尔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(一般偏差和方差是有冲突的)
在这里插入图片描述

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

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

相关文章

uniapp跳转页面多种方式详细例子

Uniapp支持许多种不同的方式来跳转页面。以下是Uniapp中使用多种方式跳转页面的详细示例&#xff1a; 使用navigateTo/navigateBack来跳转页面 navigateTo可以让用户在当前页面打开一个新页面&#xff0c;用户可以返回原来的页面。navigateBack则是返回上一个页面。示例代码如…

Springboot项目Eureka安全加密

一、通过security增加账号密码登录 1、registry服务pom增加security依赖 2、registry 配置文件 指定security账号密码 3、http://账号:密码IP:PORT/eureka/ 4、重启 二、关闭节点 三、防火墙移除eureka端口访问 参考&#xff1a;Linux(Centos7)操作记录

opencv复习(很乱)

2-高斯与中值滤波_哔哩哔哩_bilibili 1、均值滤波 2、高斯滤波 3、中值滤波 4、腐蚀操作 卷积核不都是255就腐蚀掉 5、膨胀操作 6、开运算 先腐蚀再膨胀 7、闭运算 先膨胀再腐蚀 8、礼帽 原始数据-开运算结果 9、黑帽 闭运算结果-原始数据 10、Sobel算子 左-右&#x…

day02 矩阵 2023.10.26

1.矩阵 2.矩阵乘法 3.特殊矩阵 4.逆矩阵 5.正交矩阵 6.几何意义 7.齐次坐标 8.平移矩阵 9.旋转矩阵 10.缩放矩阵 11.复合运算

如何选择安全又可靠的文件数据同步软件?

数据实时同步价值体现在它能够确保数据在多个设备或系统之间实时更新和保持一致。这种技术可以应用于许多领域&#xff0c;如电子商务、社交媒体、金融服务等。在这些领域中&#xff0c;数据实时同步可以带来很多好处&#xff0c;如提高工作效率、减少数据不一致、提高用户体验…

网络编程套接字(一)

网络编程套接字 预备知识理解源IP地址和目的IP地址理解源MAC地址和目的MAC地址理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序 socket编程接口socket常见APIsockaddr结构 简单的UDP网络程序服务端创建套接字服务端绑定运行服务器客户端代码编写本地测试IN…

为什么在 Vue 的 v-for 循环中使用唯一的 key 可以提高性能?

✨ 为什么在 Vue 的 v-for 循环中使用唯一的 key 可以提高性能&#xff1f; &#x1f383; 简介 在 Vue 的开发中&#xff0c;我们经常使用 v-for 指令来循环渲染列表。然而&#xff0c;在 v-for 循环中为子元素添加唯一的 key 属性能够带来性能上的改进。本文将解释为什么具…

Java 17 有必要升级到Java 21吗?

Java 17 有必要升级到Java 21吗&#xff1f; Java 21是Java平台的12个功能版本之一&#xff0c;于2023年9月19日发布。这个版本主要带来了数千项性能、稳定性和安全更新&#xff0c;并包含了15个重大的新特性和增强。其中最重要的特性之一是虚拟线程的最终化&#xff0c;这些线…

C++-C(0)-字符串-vector-string-基本操作

在C里用C函数是常用的。有时分不清哪个是C哪个是C了。 CC内置整形 int、long、short、 unsigned、char、 unsigned long、long unsigned int、int、 unsigned short&#xff08;16&#xff09;、short、 unsigned char、signed char unsigned long&#xff08;32&#xff0…

02【保姆级】-GO语言开发注意事项(特色重点)

02【保姆级】-GO语言开发注意事项&#xff08;特色重点&#xff09; 一、Go语言的特性1.1 第一个hello word&#xff08;详解&#xff09;1.2 开发编译。&#xff08;重要点 / 面试题&#xff09;1.3 开发注意事项1.4 GO语言的转义字符1.5 注释1.6 API 文档 一、Go语言的特性 …

el-upload 组件上传/移除/报错/预览文件,预览图片、pdf 等功能

目录 页面代码样式代码页面展示 页面代码 dialog.vue <!-- 上传文件 --> <template><el-dialogtitle"上传文件":visible.sync"dialogVisible"width"60%"top"6vh":close-on-click-modal"false"close"h…

Python JSON 使用指南:解析和转换数据

JSON 是一种用于存储和交换数据的语法。JSON 是文本&#xff0c;使用 JavaScript 对象表示法编写。 Python 中的 JSON Python 有一个内置的 json 包&#xff0c;可用于处理 JSON 数据。 示例&#xff1a;导入 json 模块&#xff1a; import json解析 JSON - 从 JSON 转换为…

重温云栖,分享十年成长:我和云栖的故事

文章目录 前言活动背景我和云栖的交际历届峰会主题2009201020112012201320142015201620172018202120222023 技术带来的变化工作生活关注的领域 后记 前言 云栖大会&#xff0c;前身可追溯到2009年的地方网站峰会&#xff0c;2011年演变为阿里云开发者大会&#xff0c;2015年正式…

OpenCV标定演示,及如何生成标定板图片

标定的程序在官方的源码里有&#xff0c; opencv-4.5.5\samples\cpp\tutorial_code\calib3d\camera_calibration 很多小白不知道怎么跑起来&#xff0c;这个也怪OpenCV官方&#xff0c;工作没做完善&#xff0c;其实的default.xml是要自己手动改的&#xff0c;输入的图片也要…

在Maven中发布项目到Nexus私有服务器

一、测试环境 Sonatype Nexus 3.61.0-02 Maven 3.9.2 二、环境配置 2.1找到maven的配置文件 2.2添加私有仓库账户密码 <servers><server><id>nexus</id><username>admin</username><password>admin</password></server&…

rfsoc FPGA 49DR 16收16发模块

前面简单介绍过RFSOC板卡 https://blog.csdn.net/jingjiankai5228/article/details/114734631 整体来说RFSOC降低了传统AD DA软硬件开发难度&#xff0c;但是同样存在整数点FS/N谐波大的问题 交织采样是通过多个AD拼接完成的&#xff0c;所以校准比较关键&#xff0c;和以前常…

【React】03.脚手架的进阶应用

文章目录 暴露webpack配置暴露前后的区别config文件夹&#xff1a;scripts文件夹&#xff1a;package.json 常见的配置修改1.把sass改为less2.配置别名3.修改域名和端口号4.修改浏览器兼容5.处理Proxy跨域 2023年最新珠峰React全家桶【react基础-进阶-项目-源码-淘系-面试题】 …

【0基础学Java第五课】-- 方法的使用

5. 方法的使用 5.1 什么是方法5.2 方法定义5.3方法调用的执行过程例题&#xff1a;求n的阶乘和 5.4 实参和形参的关系&#xff08;重点&#xff09;5.5 没有返回值的方法5.6 方法重载5.7 方法签名5.8 递归5.9 递归练习按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)递归…

每天学习都很累,该怎么办?

中考淘汰一批人&#xff0c;高考又淘汰一批人&#xff0c;能杀进大学的&#xff0c;都知道高考的累。好不容易进了大学&#xff0c;却发现仍有打卡、作业、考试。 加上每天满满的课表&#xff0c;只是看看就让人心累。 为了奖学金或升学就业&#xff0c;又得去卷绩点、卷比赛、…

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

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