当前位置: 首页 > news >正文

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

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

  • 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 比较检验
  • 3.1 线性回归
  • 3.2 最小二乘解

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

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检验(基于列联表,卡方检验)

3.1 线性回归

线性模型试图学得一个通过属性的线性组合来进行预测的函数
f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w d x d + b f(x) = w_1x_1+w_2x_2+...+w_dx_d+b f(x)=w1x1+w2x2+...+wdxd+b
向量形式: f ( x ) = w T x + b f(x) = w^Tx+b f(x)=wTx+b

f ( x i ) = w x i + b 使得 f ( x i ) ≈ y i f(x_i)=wx_i+b 使得 f(x_i)\approx y_i f(xi)=wxi+b使得f(xi)yi

对于线性回归模型,其擅长处理数值属性,对于离散属性转换成连续数值。在转化的过程中需要考虑是否有序的关系,例如对于高、中、低,但是对于一个西瓜的颜色,他们的序是无法判断的,这时候就不能简单的划分为1、0.5、0。对于这样的离散属性,可以将其表示为三维向量。

离散属性的处理:若有序,则连续化,否则转化为 k k k维向量

令均方误差最小化,有:

( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 (w^*,b^*) = \underset{(w,b) }{argmin}\sum^m_{i=1}(f(x_i)-y_i)^2 (w,b)=(w,b)argmini=1m(f(xi)yi)2 = a r g m i n ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 = \underset{(w,b) }{argmin}\sum^m_{i=1}(y_i - wx_i-b)^2 =(w,b)argmini=1m(yiwxib)2
E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 2 E(w,b)=\sum^m_{i=1}(y_i - wx_i-b)^2 E(w,b)=i=1m(yiwxib)2进行最小二乘估计

3.2 最小二乘解

E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 2 E(w,b)=\sum^m_{i=1}(y_i - wx_i-b)^2 E(w,b)=i=1m(yiwxib)2 分别对 w w w b b b 求偏导
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) {\partial E(w,b) \over \partial w} =2\left(w \sum^m_{i=1} x^2_i - \sum^m_{i=1} (y_i-b)x_i \right) wE(w,b)=2(wi=1mxi2i=1m(yib)xi) ∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) {\partial E(w,b) \over \partial b} =2\left(mb - \sum^m_{i=1} (y_i-wx_i) \right) bE(w,b)=2(mbi=1m(yiwxi))
令导数等为0,得到闭式解:
w = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w={\sum^m_{i=1} y_i(x_i-\bar x) \over \sum^m_{i=1} x^2_i - {1\over m} \left(\sum^m_{i=1} x_i \right)^2} w=i=1mxi2m1(i=1mxi)2i=1myi(xixˉ) b = 1 m ∑ i = 1 m ( y i − w x i ) b=\ {1\over m} \sum^m_{i=1} (y_i-wx_i) b= m1i=1m(yiwxi)


待更。。。


http://www.mrgr.cn/news/28143.html

相关文章:

  • 【学习】HTTP
  • 【ARM Coresight OpenOCD 系列 5 -- arp_examine 使用介绍】
  • arkUI:水果选择与管理:基于 ArkUI 的长按编辑功能实现
  • aws ses 设置发件人昵称
  • leetcode hot100【LeetCode 236.二叉树的最近公共祖先】java实现
  • Ubuntu 20.04配置ollama并下载安装调用本地大语言模型
  • 在线仿真器ST-Link为例的整体认知
  • 【Hot100】LeetCode—84. 柱状图中最大的矩形
  • 高等数学 2.4 隐函数及由参数方程确定的函数的导数
  • C# 异步编程场景
  • 鸿蒙开发之ArkTS 基础五 箭头函数
  • 信息安全工程师(5)域名与域名解析
  • 力扣周赛:第415场周赛
  • python的数据类型详解
  • Java企业面试题3
  • 基于是springboot小区物业管理系统
  • JAVA基础:线程优先级和精灵线程
  • 【演化博弈论】:双方演化博弈的原理与过程
  • java数据结构----图
  • 【Kubernetes】常见面试题汇总(十九)
  • C++第五十一弹---IO流实战:高效文件读写与格式化输出
  • 数据结构之基数排序简介与举例
  • 图像增强技术分析
  • aspcms webshell漏洞复现
  • 卡拉兹(Callatz)猜想也叫(3n+1)猜想
  • 【数据结构】排序算法---希尔排序