吃瓜教程 | Datawhale 打卡(Task 01)

news2024/11/24 17:05:26

第1章 绪论

引言

机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。
“经验”通常以“数据”的形式存在。

机器学习研究的主要内容: 在计算机上从数据中产生“模型”(model)的算法,即“学习算法”。(learning alorithm)

机器学习是研究“学习算法”的学问。

如何运用
有了学习算法,将经验数据传给学习算法后,产生相应模型;在面对新情况时,模型将会给出相应的判断。

基本术语

  1. 数据集(data set)

  2. 示例(instance)/样本(sample)

  3. 属性(attribute)/特征(feature):反映事件或对象在某方面的表现或性质

  4. 属性值(attribute value):属性上的取值

  5. 属性空间(attribute space)/样本空间(sample space): 属性张成的空间

  6. 特征向量(feature vector)

  7. 学习/训练:从数据中学得模型的过程

  8. 训练数据:训练过程中使用的数据

  9. 训练样本:训练过程中使用的每一个样本

  10. 训练集:训练样本组成的集合

  11. 假设:学得模型对应了关于数据的某种潜在规律

  12. 真相/真实:这种潜在规律自身

  13. 标记(label) yi:样本xi的标记

  14. 样例:拥有了标记信息的示例,则称为样例。一般地,用 (xi,yi) 表示第 i 个样例,其中 xi 是特征向量,yi 是这个样本的标记

  15. 标记空间(label space):所有标记的集合


    根据预测结果的类型,可以将机器学习任务分为二类。

  16. 分类(classification):预测离散值

  17. 回归(regression):预测连续值

    预测任务是希望通过对训练集进行学习,建立一个从样本空间到标记空间的映射

学得模型后,使用其进行预测的过程称为测试

  1. 测试样本:被预测的样本被称为测试样本

  2. 聚类(clustering)
    - 簇(cluster)
    - 聚类学习中使用的训练样本通常不拥有标记信息


    根据训练数据是否拥有标记信息,学习任务也可大致划分为两大类
  3. 监督学习(supervised learning) e.g.分类和回归
  4. 无监督学习(unsupervised learning) e.g.聚类

  5. 泛化(generalization)能力:学得的模型适用于新样本的能力
    通常假设样本空间中全体样本服从一个未知“分布”(distribution),每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identically distributed, i.i.d.)

第2章 模型评估与选择

经验误差与过拟合

错误率:分类错误的样本数占样本总数的比例。即如果在m个样本中有a个样本分类错误,则错误率E= a/m;相应的,1 - a/m称为“精度”,即“精度= 1 - 错误率”。

误差:学习器的实际预测输出与样本的真实输出之间的差异,学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”。

我们希望学习器能在新样本上表现得很好,为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别。
在这里插入图片描述

overfitting:学得“过于好”,以至于很可能把训练样本内部的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降


(过拟合原因,最常见的情况是由于学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了。过拟合是无法彻底避免的。原文链接:https://blog.csdn.net/fjyalzl/article/details/126797300)

  1. 欠拟合(underfitting):没有能够学习到本质特征,易克服

欠拟合的原因,通常是由学习能力低下而造成的。

2.2 评估方法

我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。为此需要使用“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为泛化误差的近似。测试集应尽可能与训练集互斥,测试集样本尽量不在测试集中出现、未在训练过程中使用。

  1. 以测试误差作为泛化误差的近似。
  2. 测试样本也是从样本真实分布中独立同分布采样得来,测试样本要尽量与训练样本不同。
  3. 即测试模型“举一反三”的能力。

已知我们需要互斥的训练集和测试集,下面将介绍几种常见的对单个数据集进行处理,使其产生一个训练集和一个测试集的方法。

留出法

“留出法”直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。训练/测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。如果从采样角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为“分层采样”。

单次使用留出法得到的估计结果往往不够稳定可靠,在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。

局限性:我们希望评估的是用D训练出的模型的性能,但留出法需划分训练/测试集,这会导致若令训练集S包含绝大多数样本,则训练出的模型可能更接近于用D训练出的模型,但由于T比较小,评估结果可能不够稳定准确;若令训练集T多包涵一些样本,则训练集S与D差别更大了,被评估的模型与用D训练出的模型相比可能有较大差别,从而降低了评估结果的保真性。这个问题没有完美的解决方法,常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。

交叉验证法

(注意的是划分方式的不同可能会对结果造成比较大的影响,采样一般采取分层采样,一般会使用多次取均值)
“交叉验证法”先将数据集D划分为k个大小相似的互斥子集,即。每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k -1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。

显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,为强调这一点,通常把交叉验证法称为“k折交叉验证”。k最常用的取值是10,此时称为10折交叉验证;其他常用的k值有5、20等。
在这里插入图片描述

留一法:假定数据集D中包含m个样本,令k = m。留一法不受随机样本划分方式的影响,因为m个样本只有唯一的方式划分为m个子集——每个自己包含一个样本;留一法使用的训练集与初始数据集相比只少了一个样本,这就使得在绝大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出的模型很相似。因此,留一法的评估结果往往被认为比较准确。

缺陷:数据集比较大时,训练m个模型的计算开销可能是难以忍受的,而这还是在未考虑算法调参的情况下。另外,留一法的估计结果也未必永远比其他评估方法准确。

自助法

“自助法”以自助采样法为基础:给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’。

显然,D中有一部分样本会在D’中多次出现,而另一部分样本不出现。
在这里插入图片描述

通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D’中。于是我们可将D’用作训练集,D\D’用作测试集;这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试。这样的测试结果,称为“包外估计”。

自助法在数据集较小、难以有效划分训练/测试集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。然而,自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。因此,在初始数据量足够时,留出法和交叉验证法更常用。

2.3 性能度量

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

对学习器的泛化性能进行评估,不仅需要有效可行的试验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。

性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。

回归任务最常用的性能度量是“均方误差”(RMSE)

2.3 性能度量

对学习器的泛化性能进行评估,不仅需要有效可行的试验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量。

性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。

回归任务最常用的性能度量是“均方误差”

在这里插入图片描述

更一般的,对于数据分布D和概率密度函数p(·),均方误差可描述为:

在这里插入图片描述

还有MAE, MAPE, RMSE, MSE,R2

2.3.1 错误率与精度

错误率与精度是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务。错误率是分类错误的样本数占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。对于样例集D,分类错误率定义为

在这里插入图片描述

精度则定义为

在这里插入图片描述

更一般的,对于数据分布D和概率密度函数p(·),错误率与精度可分别描述为:

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

2.3.2 查准率、查全率与F1

分类结果混淆矩阵:

在这里插入图片描述

查准率P和查全率R:

查准率和查全率是一对矛盾的度量,一般查准率高时,查全率偏低;而查全率高时,查准率往往偏低。

我们可以根据学习器的预测结果对样例进行排序,排在前面的是学习器认为“最可能”是正例的样本,排在最后的则是学习器认为“最不可能”是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算出当前的查全率、查准率。以查准率为纵轴、查全率为横轴作图,就得到了查准率-查全率曲线,简称“P-R曲线”。

在这里插入图片描述

在进行比较时,若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者,例如图中A优于C;如果两个学习器曲线发生交叉,例如A与B,则难以一般性地断言两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较。

“平衡点”(BEP)是一个用于综合考虑查准率、查全率的性能度量,它是“查准率=查全率”时的取值。

F1度量是比BEP更复杂的度量:

在这里插入图片描述

F1度量的一般形式——Fβ能表达出对查准率/查全率的不同偏好:

在这里插入图片描述

其中β>0度量了查全率对查准率的相对重要性。β=1时退化为标准的F1;β>1时查全率有更大影响;β<1时查准率有更大影响。

当我们有多个二分类混淆矩阵时,我们希望在n个二分类混淆矩阵上综合考察查准率和查全率。

一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率,记为(P1,R1),(P2,R2),...,(Pn,Rn),再计算平均值,这样就得到“宏查准率”(macro-P)、“宏查全率”(macro-R),以及相应的“宏F1”(macro-F1):

在这里插入图片描述

还可先将各混淆矩阵的对应元素进行平均,得到TP、FP、TN、FN的平均值,分别记为\overline{TP}\overline{FP}\overline{TN}\overline{FN},再基于这些平均值计算出“微查准率”(micro-P)、“微查全率”(micro-R)和“微F1”(micro-F1):

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

软件开发风险 需要规避的4个重点

1、前期减少投资 开发软件&#xff0c;最好减少前期的投入。软件开发成本高低是取决于所需开发的功能&#xff0c;需求越多&#xff0c;需要实现的功能越多&#xff0c;开发成本就越高。在不确定开发软件能够带来预期价值的情况下&#xff0c;建议先开发核心功能&#xff0c;辅…

分享166个HTML医疗保健模板,总有一款适合您

分享166个HTML医疗保健模板&#xff0c;总有一款适合您 166个HTML医疗保健模板下载链接&#xff1a;https://pan.baidu.com/s/1tBFEInec5Jnw_ShQd21MJg?pwdakif 提取码&#xff1a;akif Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 import os import shuti…

【残差稠密网络:医学图像:超分】

Residual dense network for medical magnetic resonance images super-resolution &#xff08;医学磁共振图像超分辨率的残差稠密网络&#xff09; 高分辨率磁共振成像&#xff08;MRI&#xff09;有助于专家定位病灶和诊断疾病&#xff0c;但高分辨率MRI难以获得。此外&am…

PyQt5数据库开发1 4.2 配置SQL Server 2008 数据源(ODBC编程)

文章目录 配置SQL Server 2008 数据源&#xff08;ODBC编程&#xff09; 1. 了解要配置的数据源服务器名称&#xff0c;以及数据库和对应表 2. 打开控制面板&#xff0c;点击管理工具 3. 双击数据源 4. 选择“用户DSN”选项卡&#xff0c;点击“添加” 5. 选择SQL Serv…

晚上下班之后可以做什么副业,业余时间需要利用起来

对大多数普通人来说&#xff0c;他们晚上有很多空闲时间&#xff0c;但他们总是在手机上玩游戏&#xff0c;刷视频&#xff0c;白白度过一夜。事实上&#xff0c;近年来&#xff0c;很多朋友都想利用晚上的时间做一些副业&#xff0c;因为目前的工资已经不能满足自己的需求&…

第05章_MySQL排序与分页

第05章_排序与分页 讲师&#xff1a;尚硅谷-宋红康&#xff08;江湖人称&#xff1a;康师傅&#xff09; 官网&#xff1a;http://www.atguigu.com 1. 排序数据 如果没有使用排序操作&#xff0c;默认情况下查询返回的数据时按照添加数据的顺序显示的 SELECT employee_id, la…

yocto创建自己的machine

前面讲了如何离线构建yocto工程&#xff0c;这节讲如何创建自己的machine&#xff0c;在初始化yocto启动bitbake需要输入如下命令 DISTROfsl-imx-fb MACHINEimx6ull14x14evk source imx-setup-release.sh -b build其中DISTRO用来指定发行版本 MACHINE用来指定硬件平台 build为构…

HTML复习1

VSCode 工具生成骨架标签新增代码 < !DOCTYPE html>表示的什么意思&#xff1f; 这句代码的意思是&#xff1a;当前页面采取的是HTML5版本来显示网页. 注意&#xff1a; < !DOCTYPE> 声明位于文档中的最前面的位置&#xff0c;处于 < html> 标签之前。< …

SAP S/4HANA Cloud 2302 财务模块亮点

&#xff08;亮点1:&#xff09;含项目制造的按订单设计 (ETO) 使用 SAP S/4HANA Cloud 2302&#xff0c;新的范围项目 6GD首先发布在德国和美国的国家版本下&#xff0c;提供项目制造的按订单设计 (ETO)的功能。 价值体现 借助 ETO 解决方案&#xff0c;您可以&#xff1a;…

【模型部署】TensorRT的安装与使用

文章目录1.TensorRT的安装1.1 cuda/cudnn以及虚拟环境的创建1.2 根据cuda版本安装相对应版本的tensorRT2. TensorRT的使用2.1 直接构建2.2 使用 Python API 构建2.3 使用 C API 构建2.3.1 属性配置2.3.2 验证2.4 IR 转换模型2.4.1 使用 Python API 转换2.4.2 使用 C API 转换2.…

Moonbeam生态说|走近生态项目SubWallet

「Moonbeam生态说」是Moonbeam中文爱好者社区联合Moonbeam中文高级大使组织的社区AMA活动。该活动为已部署Moonriver或Moonbeam的项目方提供了在主流Moonbeam非官方中文社区内介绍自己的项目信息&#xff0c;包括&#xff1a;项目介绍、团队介绍、技术优势等&#xff0c;帮助社…

【Unity VR开发】结合VRTK4.0:创建抽屉

语录&#xff1a; 为有牺牲多壮志&#xff0c;敢叫日月换新天。 前言&#xff1a; 前面我们知道了门的基本实现原理是通过角度驱动器实现的&#xff0c;那么今天我们来实现一下抽屉的实现原理&#xff1a;线性驱动器。 正文&#xff1a; 步骤一&#xff1a; 首先我们需要在新…

零基础学Java要具备哪些前提条件?

很多零基础的学员对于学Java比较迷茫&#xff0c;想通过学Java掌握一技之长&#xff0c;却不知道入门需要具备哪些条件?不知道怎么去学习?下面详细来和大家聊聊&#xff1a;首先&#xff0c;要对Java语言感兴趣&#xff0c;兴趣是最好的老师&#xff0c;只有拥有兴趣才能在学…

浅析云边端协同架构的应用意义与EasyCVR视频融合能力升级

随着5G时代的到来&#xff0c;万物互联产生了海量数据&#xff0c;据IDC预测&#xff0c;到2025年全球设备连接总数将达到1000亿&#xff0c;集中式处理模型下核心网络无法承载如此大的数据量传输&#xff0c;数据也无法在云中心存储计算&#xff0c;因此基于云边端的架构模式成…

ATR指标在外汇交易中的另类运用方法

当涉及到外汇交易时&#xff0c;有许多不同的指标可以使用。然而&#xff0c;ATR指标可能是一个被低估的工具&#xff0c;可以帮助您发现有利可图的交易机会。本文将介绍ATR指标是什么&#xff0c;如何使用它来识别价格波动和制定交易策略&#xff0c;以及如何在外汇市场中另辟…

DRF之实战总结

前言 DRF概念&#xff1a;Django REST framework框架是一个用于构建Web API的强大而又灵活的工具. 通常简称为DRF框架 或 REST framework框架 特点&#xff1a; 提供了定义序列化器serializer的方法,可以快速根据Django ORM或者其他库自动序列化/反序列化;提供了丰富的类视图…

解决rimraf使用时提示unexpected token “.”

解决rimraf使用时提示unexpected token “.” 前言 最近运行一个Cordova项目时&#xff0c;npm install后打包&#xff0c;命令栏提示了下面这个问题&#xff1a; 很奇怪啊&#xff0c;就我这里有问题&#xff0c;别人之前都没事&#xff0c;很头疼。 问题原因 经过一番摸索…

centos安装FastDFS,集成到SpringBoot中

前言 本教程采用centos7 实测 安装fastdfs&#xff0c;每一步都存在截图&#xff0c;安装不成功你就我 最关键的是采用springboot 集成 fastdfs&#xff0c;上传保存文件信息 小序 FastDFS是一个开源的分布式文件系统&#xff0c;她对文件进行管理&#xff0c;功能包括&…

为什么时间序列预测这么难?本文将给你答案

机器学习和深度学习已越来越多应用在时序预测中。ARIMA 或指数平滑等经典预测方法正在被 XGBoost、高斯过程或深度学习等机器学习回归算法所取代。 尽管时序模型越来越复杂&#xff0c;但人们对时序模型的性能表示怀疑。有研究表明&#xff0c;复杂的时序模型并不一定会比时序…

如果网站的 Cookie 特别多特别大,会发生什么(二)

协议 仔细回顾一遍 Cookie 属性&#xff0c;除了 secure&#xff0c;再没和 URL Scheme 相关的属性了。 HTTPS是在HTTP上建立SSL加密层&#xff0c;并对传输数据进行加密&#xff0c;是HTTP协议的安全版。现在它被广泛用于万维网上安全敏感的通讯&#xff0c;例如交易支付方面。…