【AI学习笔记】初学机器学习西瓜书的知识点概要记录

news2024/9/22 7:37:14

初学机器学习西瓜书的知识点概要记录

  • 1.1 机器学习
  • 1.2 典型的机器学习过程
  • 1.2 机器学习理论
  • 1.3 基本术语
  • 1.4 归纳偏好
  • 1.5 NFL定理
  • 2.1 泛化能力
  • 2.2 过拟合和欠拟合
  • 2.3 三大问题
  • 2.4 评估方法
  • 2.5 调参与验证集
  • 2.6 性能度量
  • 2.7 比较检验

以下内容出自周志华老师亲讲西瓜书

1.1 机器学习

(1)经典定义:利用经验改善系统自身的性能。(经验->数据)
随着该领域的发展,目前主要研究智能数据分析的理论和方法,并已成为智能数据分析技术的源泉之一

1.2 典型的机器学习过程

在这里插入图片描述

适用于全局 - 模型 适用于局部 - 模式(pattern)

1.2 机器学习理论

PAC(Probably Approximately Correct 概率近似正确模型)
P ( ∣ f ( x ) − y ∣ ≤ ϵ ) ≥ 1 − δ P(|f(x) - y|\leq \epsilon )\geq 1- \delta P(f(x)yϵ)1δ

建立一个模型,对于数据 x x x 样本得到一个模型 f f f,那么模型 f f f 会对 x x x进行一个判断,即 f ( x ) f(x) f(x),我们希望这个模型判断特别准,即逼近真实结果 y y y。那么可以表达为 ∣ f ( x ) − y ∣ ≤ ϵ |f(x) - y|\leq \epsilon f(x)yϵ,即它们俩的差别小于一个很小的数。希望能得到这样一个模型 f f f,但并不是每次都能得到,所以希望能以很高的概率去得到它,很高的概率意味着 P ( ∣ f ( x ) − y ∣ ≤ ϵ ) ≥ 1 − δ P(|f(x) - y|\leq \epsilon )\geq 1- \delta P(f(x)yϵ)1δ,如果 δ \delta δ非常小,那么获取到这个模型的概率就非常高。
为什么不追求该模型一定是准的,即 ∣ f ( x ) − y ∣ = 0 |f(x) - y| = 0 f(x)y=0,且一定能获取到该模型?
机器学习通常解决的问题具有高度的不确定性、高度的复杂性,甚至不知道怎么去做它。当我们的知识已经不能精确的给我结果的时候,我从数据里去分析,希望能从数据中得到答案。
P ? = N P P?=NP P?=NP
P问题:在多项式时间内,能找到该问题的解。
NP问题:在多项式时间内,给一个解,能判断它是不是解。
如果 ∣ f ( x ) − y ∣ = 0 |f(x) - y| = 0 f(x)y=0 P = 1 P=1 P=1,那么意味着每次都能给到最佳答案,那么即证明了 P = N P P=NP P=NP

1.3 基本术语

在这里插入图片描述
非监督学习:拿到的数据中,没有希望结果,聚类、密度估计
监督学习:预测内容、分类回归

1.4 归纳偏好

机器学习算法学习过程中对某种类型假设的偏好
在这里插入图片描述
一般原则:奥卡姆剃刀(若非必要,勿增实体
学习算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能!

1.5 NFL定理

NFL定理:一个算法 a a a若在某些问题比领一个算法 b b b好,必存在另一些问题 b b b a a a好。

NFL定理的重要前提:所有“问题”出现的机会相同、或所有问题同等重要
实际情形并非如此,我们通常只关注自己正在试图解决的问题
脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义!
最优方案往往来自:按需设计、度身定制

2.1 泛化能力

泛化能力强,能很好地适用于 unseen instance

2.2 过拟合和欠拟合

泛化误差:在“未来”样本上的误差
经验误差:在训练集上的误差,亦称“训练误差”
在这里插入图片描述
过拟合(over fitting),所有的算法都是在缓解过拟合,在学习具体算法时需要关注该算法靠什么去缓解过拟合,以及缓解过拟合的策略在什么情况下会失效,明白以上两点便把握了该算法应该在什么时候用。

2.3 三大问题

三个关键问题:
(1)如何获得测试结果 评估方法
(2)如何评估性能优劣 性能度量
(3)如何判断实质差别 比较检验

2.4 评估方法

关键:怎么获得“测试集”?
测试集应该与训练集"互斥"

常见方法:
(1)留出法(hold-out)
在这里插入图片描述

例如训练一个100条数据的数据集,训练出的模型称为 M 100 M_{100} M100,它的性能判断 E r r 100 Err_{100} Err100,但是 E r r 100 Err_{100} Err100是无法得到的,因此我们划分出80条数据集进行训练,得到模型 M 80 M_{80} M80,则用剩下的20条数据进行测试得到 E r r 80 Err_{80} Err80,使用 E r r 80 Err_{80} Err80去近似 E r r 100 Err_{100} Err100。但是如果测试集使用的数据过多,那么 M 80 M_{80} M80已经不是 M 100 M_{100} M100模型了,随着训练集的减少,该近似效果就会变差,同时又希望测试集更多,才会使 E r r 80 Err_{80} Err80的测试结果更准确。因此大部分情况下都是使用经验值20%去做测试。在通过抽取的训练集训练出模型后,通过性能判断 E r r 80 Err_{80} Err80选择最终的模型,此时并不是把 M 80 M_{80} M80作为最终的模型,而是使用所有数据集训练得到 M 100 M_{100} M100.

(2)交叉验证法(cross vaildation)
因为在留出法中,每次都是挑取一定比例的数据作为训练集,所以存在有的数据永远都没存在在训练集中。
在这里插入图片描述

(3)自助法(bootstrap)
基于“自助采样”(bootstrap sampling)亦称“有放回采样”、“可重复采样”
在这里插入图片描述

2.5 调参与验证集

算法的参数:一般由人工设定,亦称"超参数"
模型的参数:一般由学习确定
调参的过程相似:先产生若干模型,然后基于某种评估方法进行选择。

在拟合一条直线时,对于一个模型 y = a x d + b x + c y=ax^d+bx+c y=axd+bx+c,其中次数 d d d可以由用户提供,即超参数,剩下的则有学习确定

参数调的好不好往往对最终性能有关键影响
在训练集中单独留出用于调参数的数据称为验证集
算法参数选定后,要用“训练集+验证集”重新训练最终模型

2.6 性能度量

性能度量时衡量模型泛化能力的评价标准,反映了任务需求
使用不同的性能度量往往会导致不同的评判结果
什么样的模型是好的,不仅取决于算法和数据,还取决于任务需求

(1)回归任务常用均方误差:
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D) = {1\over m}\sum^m_{i=1}(f(x_i)-y_i)^2 E(f;D)=m1i=1m(f(xi)yi)2
(2)分类任务错误率:
E ( f ; D ) = 1 m ∑ i = 1 m ∏ ( f ( x i ) ≠ y i ) E(f;D) = {1\over m}\sum^m_{i=1}\prod(f(x_i) \neq y_i) E(f;D)=m1i=1m(f(xi)=yi)

(3)查准率和查全率
在这里插入图片描述在这里插入图片描述

2.7 比较检验

在某种度量下取得评估结果后,不可以直接比较以评判优劣
因为:
(1)测试性能不等于泛化性能
(2)测试性能随着测试集的变化而变化
(3)很多机器学习算法本身有一定随机性
统计假设检验为学习器性能比较提供了总要依据

两学习器比较:

  • 交叉验证t检验(基于成对t检验)
  • McNemar检验(基于列联表,卡方检验)

待更。。。

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

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

相关文章

复习:数组

目录 数组名 一般性理解 下标引用与间接访问 例外 一维数组 声明与初始化 下标引用 内存分配 长度计算 二维数组 内存分配 长度计算 声明与初始化 数组指针 引入 数组指针 一级指针 引入 一级指针 章尾问题 数组名 一般性理解 数组名是一个指向&#x…

DockerLinux安装DockerDocker基础

Linux软件安装 yum命令安装 通过yum命令安装软件,是直接把软件安装到Linux系统中 安装和卸载都比较麻烦,因为软件和系统是强关联的 Docker docker是一种容器技术,可以解决软件和系统强关联关系,使得软件的安装和卸载更方便,它可以将我们的应用以及依赖进行打包,制作出一个镜…

算法:TopK问题

题目 有10亿个数字,需要找出其中的前k大个数字。 为了方便讲解,这里令k为5。 思路分析(以找前k大个数字为例) 很容易想到,进行排序,然后取前k个数字即可。 但是,难点在于,10亿个数…

人工智能GPT____豆包使用的一些初步探索步骤 体验不一样的工作

豆包工具是我使用比较频繁的一款软件,其集合了很多功能。对话 图像 AI搜索 伴读等等使用都非常不错。电脑端安装集合了很多功能。 官网直达:豆包 使用我的文案创作能力,您可以注意以下几个技巧: 明确需求: 尽可能具…

Linux进阶 把用户加入和移除用户组

1、Linux 单用户多任务,多用户多任务概念 Linux 是一个多用户、多任务的操作系统。 单用户多任务、多用户多任务 概念; Linux 的 单用户、多任务以 beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当…

C语言:联合和枚举

一. 联合体 1.联合体的声明 1. 像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 union { 成员1; 成员2; ........ }; //联合体类型 union S {char c;int i; }; 2.联合体的特点和大小计算 像结构体一…

emWin5的图片半透明之旅

文章目录 目标过程直接使用png (失败了)通过 BmpCvt.exe 转换一下(成功了)通过bmp转 (半成功吧) 补充工程结构整理 目标 显示半透明效果,类似png那种,能透过去,看到背景。 过程 直接使用png …

【STM32】单级与串级PID控制的C语言实现

【STM32】单级与串级PID的C语言实现 前言PID理论什么是PIDPID计算过程PID计算公式Pout、Iout、Dout的作用单级PID与串级PID PID应用单级PID串级PID 前言 笔者最近在学习PID控制器,本文基于Blog做以总结。CSDN上已有大量PID理论知识的优秀文章,因此本文将…

基于HPLC的低压电力采集方案

1. 组网部署 2. 组网部件 3. 原理

✔2848. 与车相交的点

代码实现&#xff1a; 方法一&#xff1a;哈希表 #define fmax(a, b) ((a) > (b) ? (a) : (b))int numberOfPoints(int **nums, int numsSize, int *numsColSize) {int hash[101] {0};int max 0;for (int i 0; i < numsSize; i) {max fmax(max, nums[i][1]);for …

基于SSM+Vue+MySQL的新生报到管理系统

系统展示 用户界面 管理员界面 系统背景 在当今高等教育日益普及的背景下&#xff0c;新生报到管理成为高校日常管理中的重要环节。为了提升报到效率、优化管理流程并确保数据的准确性与安全性&#xff0c;我们设计并实现了一个基于SSM&#xff08;SpringSpring MVCMyBatis&…

JavaScript高级——作用域和作用链

1、概念理解&#xff1a; —— 就是一块“地盘”&#xff0c;一个代码所在的区域 —— 静态的&#xff08;相对于上下文对象&#xff09;&#xff0c;在编写代码时就确定了 2、分类 ① 全局作用域 ② 函数作用域 ③ 没有块作用域&#xff08;ES6有了&#xff09; 3、作用 …

app抓包 chrome://inspect/#devices

一、前言&#xff1a; 1.首先不支持flutter框架&#xff0c;可支持ionic、taro 2.初次需要翻墙 3.app为debug包&#xff0c;非release 二、具体步骤 1.谷歌浏览器地址&#xff1a;chrome://inspect/#devices qq浏览器地址&#xff1a;qqbrowser://inspect/#devi…

C#开发基础之单例模式下的集合数据,解决并发访问读写冲突的问题

1. 前言 在C#中&#xff0c;使用单例模式管理集合数据时&#xff0c;如果多线程同时访问集合&#xff0c;容易产生并发访问的读写冲突问题。单例模式下集合数据的并发访问读写冲突是如何产生的&#xff1f; 单例模式确保一个类在整个应用运行期间只有一个实例&#xff0c;这使…

CSP-J 算法基础 图论

文章目录 前言图的简介1. **图的定义**2. **图的类型**3. **图的表示方法**a. **邻接矩阵&#xff08;Adjacency Matrix&#xff09;**b. **邻接表&#xff08;Adjacency List&#xff09;** 4. **图的基本操作**5. **图的遍历**6. **图的应用**7. **图的算法** 出度与入度1. *…

Android实现关机和重启功能

文章目录 需求场景需求场景经历 一、解决思路和方案实际困难点情况普遍思路用Shell 命令实现应用和系统联调遇到的问题 个人解决思路和方案 二、代码跟踪系统实现的关机、重启界面GlobalActionsDialogLite.java 创建关机、重启菜单createActionItems()shutdownAction GlobalAct…

时序数据库 TDengine 的入门体验和操作记录

时序数据库 TDengine 的学习和使用经验 什么是 TDengine &#xff1f;什么是时序数据 &#xff1f;使用RPM安装包部署默认的网络端口 TDengine 使用TDengine 命令行&#xff08;CLI&#xff09;taosBenchmark服务器内存需求删库跑路测试 使用体验文档纠错 什么是 TDengine &…

GEE:连续变化检测与分类(Continuous Change Detection and Classification, CCDC)教程

连续变化检测与分类&#xff08;Continuous Change Detection and Classification, CCDC&#xff09;是一种土地变化监测算法&#xff0c;旨在对卫星数据的时间序列进行操作&#xff0c;特别是Landsat数据。CCDC包括两个部分&#xff0c;其一是变化检测算法&#xff08;Change …

Mybatis中Like模糊查询三种处理方式

目录 Mybatis中Like模糊查询三种处理方式 1.通过单引号拼接${} 1&#xff09;mapper接口 2&#xff09;Mapper.xml 3&#xff09;测试代码 4) 测试结果 2.通过concat()函数拼接(个人推荐使用这种) 1&#xff09;mapper接口 2&#xff09;Mapper.xml 3&#xff09;测试代码 4) 测…

C语言-整数和浮点数在内存中的存储-详解-下

C语言-整数和浮点数在内存中的存储-详解-下 1.前言2.浮点数2.1IEEE 754 标准2.2存储格式存储细节取出 3.相关代码的解释 1.前言 在C语言-整数和浮点数在内存中的存储-详解-上中&#xff0c;我通过一个简单的例子展示了整数和浮点数在内存中的存储差异&#xff0c;并详细介绍了…