《机器学习》吃瓜笔记 第一二章(2.1+2.2)

1. 绪论

1.2 假设空间

[!note]+ 概念
归纳(induction)与演绎(deduction)是科学推理的两大基本手段.

  • 前者是从特殊到一般的“泛化”(generalization)过程,即从具体的事实归结出一般性规律;
  • 后者则是从一般到特殊的“特化 ”(specialization)过程,即从基础原理推演出具体状况.

狭义的归纳学习又被称为“概念学习”,要求从训练数据中学得概念;其中最基本的是布尔概念学习(是非判断)。

将所有的假设构成一个假设空间,那么学习的过程就是在该空间之中搜索到与训练集fit的假设,并不断对空间中的假设进行删减,最终得到一个与训练集一致的假设,即是最后的模型。
空间及规模大小随着假设的表示确定而确定,如下就是四种假设:

(颜色=*;大小=*)
(颜色=黑;大小=*)
(颜色=*;大小=大)
(颜色=黑;大小=大)

在现实中,对问题的描述是复杂的,假设空间也会很大;但学习过程是基于有限的样本训练集的。因而,在现实中会存在许多与训练集一致的假设(或模型),也就是存在一个与训练集一致的假设的集合,称之为==“版本空间”==(version space)。这是一切试图拟合规律的模型的集合。

1.3 归纳偏好

由于在现实中与有限训练集一致的假设不唯一,模型在不同的假设下对于同一输入的输出也会有所差别。这些假设并不是“等效”的,模型对不同的假设之间必然会有所偏好,这种对于某种类型假设的偏好在学习过程中产生,称作==“归纳偏好”==(inductive bias)。

所谓“假设”指用于模拟规律的模型,那么“偏好”也就是对于不同的模型进行选择的一种价值观。常用的价值观如**“奥卡姆剃刀原则”**。

值得注意,如果一个学习算法 L a \mathfrak{L}_a La在某些方面上的表现比 L b \mathfrak{L}_b Lb好,那么必然存在另一些问题使得 L b \mathfrak{L}_b Lb的表现比 L a \mathfrak{L}_a La更好 —— “没有免费午餐”定理(NFL定理)

这一定理适用于问题等概率出现的情况,但现实中我们总需要处理某一类具体的问题。
So,脱离问题谈方法,纯纯扯淡。

[!example]- 举例说明
我们可以讨论一个简单的场景。假设样本空间与假设空间都是离散的,并考虑二分类问题,则算法 L a \mathfrak{L}_a La在训练集之外所有样本上的误差,与算法 L a \mathfrak{L}_a La本身无关。

推导见[[机器学习 (周志华).pdf#page=24&selection=193,0,200,1|机器学习 (周志华), page 24]]
其中 ∑ f I ( h ( x ) ≠ f ( x ) \sum_{f}\mathbb{I}(h(x)\not= f(x) fI(h(x)=f(x),若 f f f均匀分布,即 f f f取得假设的概率均匀随机,则至少有一半的 f f f的预测结果与模式 h h h不同,且离散样本下 f f f的总可能个数为 2 ∣ χ ∣ 2^{|\chi|} 2χ,因此结果为 1 2 2 ∣ χ ∣ \frac{1}{2}2^{|\chi|} 212χ


2. 模型评估与选择

[!note]+ 概念
“误差”(error):模型预测输出与样本真实输出之间的差异;

在训练集上的误差称为“训练误差”,在测试集上的误差称为“测试误差”(test error),在新样本的误差称为“泛化误差”

2.1 评估方法

[!note] 概念
“评估”:通过实验测试对模型的泛化误差进行评估,进而为模型选择提供参考——使用“验证集”来测试模型,并将“验证误差”看作泛化误差的近似。

“测试集”:实际使用中遇到的数据;
”验证集“(validation set):用于评估测试的数据;

从有限的数据集 D D D中产生训练集 S S S和验证集 T T T的方法——

留出法

直接将数据集 D D D划分为两个互斥的集合,即 D = S ∪ T , S ∩ T = ∅ D=S\cup T,S \cap T=\emptyset D=ST,ST=

  • 需要尽可能保持数据分布的一致性,避免划分操作引入额外的偏差(如保持类别比例一致);
  • 即使确定了划分的比例,依旧存在不同的选取方式。因此一般要采用若干次随机划分、重复进行实验评估后取平均值作为评估结果;

但依旧存在“ S S S较大,评估不准”与“ T T T较大则, S S S D D D差别大”的矛盾

交叉验证法(cross validation,k折交叉验证
  1. 先将数据集 D D D划分为 k k k个大小相似的互斥子集,每个子集 D i D_i Di都尽可能保持数据分布的一致性;
  2. 进行 k k k次训练与测试,每次用 k − 1 k-1 k1个子集的并集训练,余下的子集用于测试;
  3. 将k次测试结果取平均返回;
    10折交叉验证
  • 划分为 k k k个子集的方法也有许多,一般是随机使用不同的划分方法重复 p p p次,最终取这 p p p k k k折交叉验证的结果均值。
  • 令样本个数为 m m m,当取 k = m k=m k=m,称作**“留一法”(LLO)**,使得我们评估的对象最接近原始模型。这样一来不受随机样本划分的影响,且因只差一个样本、评估模型与训练模型很相似。但缺点在于计算开销极大。
自助法

自助采样法(bootstrap sampling)为基础——
对于包含 m m m个样本的数据集 D D D,进行 m m m次采样,每次采样都随机从 D D D有放回地挑选一个样本,最终得到包含 m m m个样本的数据集 D ′ D' D。如此, D D D中有一部分样本会在 D ′ D' D中多次出现。

  • 适用于数据集小、难以进行有效划分的情况,也能产生多个不同的训练集;
  • 但新产生的训练集改变了初始数据分布,引入了估计偏差。

[!example]- 简单计算
样本在 m m m次采样中始终不被采到的概率为 ( 1 − 1 m ) m {(1-\frac{1}{m})}^m (1m1)m,取极限可得:
lim ⁡ m → ∞ ( 1 − 1 m ) m → 1 e ≈ 0.368 (2.1) \lim_{m \to \infty} (1- \frac{1}{m})^m \to \frac{1}{e} \approx 0.368 \tag{2.1} mlim(1m1)me10.368(2.1)
实际评估的模型与期望评估的模型都使用 m m m个训练样本,而我们仍有数据总量约1 / 3 的、没在训练集中出现的样本用于测试。
这样的测试结果,亦称 “包外估计”(out-of-bag estimate).

[!attention]+
在完成模型选择后,学习的算法与参数配置已经确定,之后应该使用数据集 D D D重新训练模型,使得其使用了全部的 m m m个样本。


2.2 性能度量

2.2.1 回归任务

均方误差

E ( f ; D ) = 1 m ∑ i = 1 m ( f x i − y i ) 2 (2.2) E(f;D) = \frac{1}{m} \sum^m_{i=1} (f{x_i}-y_i)^2 \tag{2.2} E(f;D)=m1i=1m(fxiyi)2(2.2)
更一般的,对于数据分布 D \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p(),均方误差可描述为 E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x (2.3) E(f;\mathcal{D}) = \int_{x \sim \mathcal{D}} (f(x)-y)^2 p(x) dx \tag{2.3} E(f;D)=xD(f(x)y)2p(x)dx(2.3)

2.2.2 分类任务

错误率与精度
  • 错误率(error rate):分类错误的样本占比;
    • 对样例集 D D D E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ≠ y i ) (2.4) E(f;D) = \frac{1}{m} \sum^{m}_{i=1} \mathbb{I}(f(x_i) \not= y_i) \tag{2.4} E(f;D)=m1i=1mI(f(xi)=yi)(2.4)
    • 对于数据分布 D \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p() E ( f ; D ) = ∫ x ∼ D I ( f ( x ) ≠ y ) p ( x ) d x (2.6) E(f;\mathcal{D}) = \int_{x \sim \mathcal{D}} \mathbb{I}(f(x) \not= y) p(x) dx \tag{2.6} E(f;D)=xDI(f(x)=y)p(x)dx(2.6)
  • 精度(accuracy):分类正确的样本占比,即1-“错误率”;
    • 对样例集 D D D
      a c c ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i )   = 1 − E ( f ; D ) \begin{equation} \begin{aligned} acc(f;D) &= \frac{1}{m} \sum^{m}_{i=1} \mathbb{I}(f(x_i) = y_i) \tag{2.5} \\ ~&= 1-E(f;D) \end{aligned} \end{equation} acc(f;D) =m1i=1mI(f(xi)=yi)=1E(f;D)(2.5)
    • 对于数据分布 D \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p()
      KaTeX parse error: No such environment: eqnarray at position 7: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ acc(f;\math…
查准率P、查全率R与F1
  • 查准率P:在预测的正例中,真实的正例占比;(讲究预测正例的准确性)
  • 查全率R:正确的预测分类中,预测正例的占比;(讲究真实正例是否充分找出)

这两个度量往往是相互矛盾的。为了提高查全率,我们往往需要提高预测的次数,但如此查准率就可能下降。

查准率: P = T P T P + F P (2.8) 查准率:P = \frac{TP}{TP+FP} \tag{2.8} 查准率:P=TP+FPTP(2.8) 查全率: R = T P T P + F N (2.9) 查全率:R=\frac{TP}{TP+FN} \tag{2.9} 查全率:R=TP+FNTP(2.9)
![[截屏2023-09-12 12.11.56.png|400]]

  • P-R图
    可直观显示学习器在样本总体上的查全率和查准率:
  • 在比较时,若学习器A的曲线完全“包住”了学习器C,则A的性能优于C;但若两者的曲线发生了交叉,就难以全局评判;
  • **“平衡点”(BEP)****是 P = R P=R P=R时的取值,如 B E P C = 0.64 BEP_C=0.64 BEPC=0.64,基于这一度量可粗略比性能。
    在这里插入图片描述
  • F1度量
    F1度量的一般形式如下: F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R (2.11) F_\beta = \frac{(1+\beta^2)\times{P}\times{R}} {(\beta^2\times{P})+R} \tag{2.11} Fβ=(β2×P)+R(1+β2)×P×R(2.11)等效于==加权调和平均 1 F β = 1 1 + β 2 ( 1 P + β 2 R ) \frac{1}{F_{\beta}}= \frac{1}{1+\beta^2}{}(\frac{1}{P}+\frac{\beta^2}{R}) Fβ1=1+β21(P1+Rβ2)
    其中 β \beta β度量查全率R对查准率P的相对重要性,以 β = 1 \beta=1 β=1为基准,此处退化为F1:
    F 1 = 2 × P × R P + R = 2 × T P 样例总数 + T P − T N (2.10) F_1 = \frac{2\times{P}\times{R}} {P+R} = \frac{2\times{TP}} {样例总数+TP-TN} \tag{2.10} F1=P+R2×P×R=样例总数+TPTN2×TP(2.10)等价于
    调和平均== 1 F β = 1 1 + 2 ( 1 P + 2 R ) \frac{1}{F_\beta} = \frac{1}{1+2}(\frac{1}{P} + \frac{2}{R}) Fβ1=1+21(P1+R2)

当我们面临多个二分类混淆矩阵,如进行多次测试或在多个数据集上进行训练时,希望能够在 n n n个混淆矩阵上综合考虑P和R;

  1. 可以分别计算P、R、F1,再取平均值,得到“宏查准率”、“宏查全率”和“宏F1”。如 m a c r o − P = 1 n ∑ i = 1 n P i macro-P = \frac{1}{n} \sum^n_{i=1}P_i macroP=n1i=1nPi
  2. 也可先将各混淆矩阵的对应元素进行平均,再基于这些均值计算得到“微查准率”、“微查全率”和“微F1”。如 m i c r o − P = T P ‾ T P ‾ + F P ‾ micro-P = \frac{\overline{TP}} {\overline{TP}+\overline{FP}} microP=TP+FPTP
ROC与AUC

[!note]
许多学习器在预测时都是为样例附上一个概率,指示其为正例的可能性,于是自然对应一个递减的序列。在序列形成后,设置一个截断阈值,即可输出分类结果。

ROC的目的在于考察序列本身。

根据预测的结果,依据样例为正的可能性对样例进行排序;按此顺序逐个将样本作为正例预测,并考量 T P R TPR TPR F P R FPR FPR两个值。

T P R TPR TPR(真正例率)和 F P R FPR FPR(假正例率)分别指在预测样例为正的情况下,成功与失败的占比;

T P R = T P T P + F N (2.18) TPR=\frac{TP}{TP+FN} \tag{2.18} TPR=TP+FNTP(2.18) F P R = F P T N + F P (2.19) FPR=\frac{FP}{TN+FP} \tag{2.19} FPR=TN+FPFP(2.19)

之后通过调整分类阈值,依次设置为每个样例的预测值(即依次设置为正例),绘制ROC曲线

[!attention]+
ROC图的横纵坐标不涉及“反例”,不存在“和为0”的恒等关系。而曲线上凸正是算法“能用”的体现。

在这里插入图片描述

  • 与P-R图类似,若学习器A的曲线完全“包住”了学习器C,则A的性能优于C;
  • 但若两者的曲线发生了交叉,就难以全局评判,一般还可根据ROC曲线下的面积,即AUC进行比较(计算源自梯形面积);
    A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) (2.20) AUC=\frac{1}{2} \sum^{m-1}_{i=1}(x_{i+1}-x_i)(y_i+y_{i+1}) \tag{2.20} AUC=21i=1m1(xi+1xi)(yi+yi+1)(2.20)
    也可定义该排序的“损失”(loss),其中 m + m^+ m+ m − m^- m分别为真实的正例反例数,令 D + D^+ D+ D − D^- D分别表示正反例集合 l r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( I ( f ( x + ) < f ( x − ) ) + 1 2 I ( f ( x + ) = f ( x − ) ) ) (2.21) {l_{rank} = \frac{1}{m^+m^-} \sum_{x^+\in{D^+}} \sum_{x^-\in{D^-}}(\mathbb{I}(f(x^+)<f(x^-))+\frac{1}{2}\mathbb{I}(f(x^+)=f(x^-)))} \tag{2.21} lrank=m+m1x+D+xD(I(f(x+)<f(x))+21I(f(x+)=f(x)))(2.21)
    相当于考虑每一对正反例,若正例预测值小于反例则计一个“罚分”,若相等则计0.5个“罚分”;
    可知其表示的是AUC曲线上方的面积,因此可得 A U C = 1 − l r a n k (2.22) AUC=1-l_{rank} \tag{2.22} AUC=1lrank(2.22)

[!example]- 式(2.22)推导
首先明确,对于前一个标记点 ( x , y ) (x,y) (x,y),若当前为真正例,则坐标为 ( x , y + 1 m + ) (x,y+\frac{1}{m^+}) (x,y+m+1);若为假正例,则坐标为 ( x + 1 m − , y ) (x+\frac{1}{m^-},y) (x+m1,y)。换言之,每个示例在轴上对应的步长为 1 m + \frac{1}{m^+} m+1 1 m − \frac{1}{m^-} m1
KaTeX parse error: No such environment: eqnarray at position 7: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ l_{rank} &=& …
这里同样是梯形面积计算,其中 ∑ x + ∈ D + \sum_{x^+\in{D^+}} x+D+是将所有的小梯形累加起来:

  • “高”与y轴平行,大小为 1 m + \frac{1}{m^+} m+1
  • “下底”为“下端点”到y轴的距离,等于预测值大于 f ( x + ) f(x^+) f(x+)的示例所占长度,即 1 m − ∑ x − ∈ D − I ( f ( x + ) < f ( x − ) ) \frac{1}{m^-} \sum_{x^-\in{D^-}} \mathbb{I}(f(x^+)<f(x^-)) m1xDI(f(x+)<f(x))
  • “上底”为“上端点”到y轴的距离,等于预测值大于等于 f ( x + ) f(x^+) f(x+)的示例所占长度,即 1 m − ( ∑ x − ∈ D − I ( f ( x + ) < f ( x − ) ) + ∑ x − ∈ D − I ( f ( x + ) = f ( x − ) ) ) \frac{1}{m^-}( \sum_{x^-\in{D^-}} \mathbb{I}(f(x^+)<f(x^-)) +\sum_{x^-\in{D^-}} \mathbb{I}(f(x^+)=f(x^-))) m1(xDI(f(x+)<f(x))+xDI(f(x+)=f(x)))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值