【机器学习-西瓜书】-第2章-模型评估与选择-学习笔记

2.1 经验误差与过拟合

概念

概念 解释 页码
错误率 分类错误的样本数占样本总数的比例 23
精度 精度 = ( 1-错误率 ) x 100% 23
误差 学习器的实际预测输出与样本的真实输出之间的差异称为"误差"(误差期望) 23
训练误差 学习器在训练集上的误差称为"训练误差" 23
泛化误差 学习器在新样本上的误差称为"泛化误差" 23
过拟合 欠拟合
训练样本学得“太好",泛化性能下降 对训练样本的一般性质尚未学好
过配 欠配
通常学习能力过于强大导致 通常学习能力低下导致

学习能力是否"过于强大",由学习算法和数据内涵共同决定的。

过拟合是机器学习面临的关键障碍

过拟合问题的理论思考

机器学习面对的通常是NP难甚至更难

有效的学习算法可以理解为P

如果通过经验误差最小化就能获得最优解,意味着构造性证明了 P = N P P=NP P=NP

只要相信 P ≠ N P \mathrm{P} \neq \mathrm{NP} P=NP,那么就难以避免过拟合

模型选择

  • 包括

    • 学习算法的选择
    • 参数的配置
  • 评估方法

    • 实验测试对学习器的泛化误差进行评估
  • 评价标准

    • 性能度量

2.2 评估方法

测试集 T T T

  • 测试学习器对新样本的判别能力
    • 以"测试误差"作为泛化误差的近似
  • 假设
    • 从样本真实分布中独立同分布采样而得
  • 要求
    • 尽可能与训练集互斥

数据集 D D D划分出 训练集 S S S测试集 T T T (验证集)的方法

  • 留出法
  • 交叉验证法
  • 自助法

(模型评估中用于测试的数据集通常称为验证集)

补充

在模型评估与选择的过程中留出一部分数据进行评估测试,在模型选择完成后,学习算法和参数配置已选定,再用全量的数据进行训练,这个才是最终提交给用户的模型

2.2.1 留出法

将数据集 D D D划分为两个互斥的集合

D = S ∪ T S ∩ T = ∅ D=S \cup T\\ S \cap T=\varnothing D=STST=

  • S S S训练模型
  • T T T评估测试误差

注意点

  • 数据分布
    • 尽可能保证训练/测试集的数据分布保持一致
      • “分层采样”:保留类别比例
  • 估计结果的可靠性
    • 可若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果
  • 划分比例
    • 常用2/3~4/5的样本用于训练,剩余用于测试
      • 一般测试集至少包含30个样例
  • 测试集和验证集划分比例的trade-off
    • 测试集小,评估结果的方差较大
    • 训练集小,评估结果的偏差较大

2.2.2 交叉验证法

将数据集 D D D划分为 k k k个大小相似的互斥子集,同时每个子集尽可能保证数据分布的一致性

D = D 1 ∪ D 2 ∪ … ∪ D k D i ∩ D j = ∅ ( i ≠ j ) D=D_{1} \cup D_{2} \cup \ldots \cup D_{k}\\ D_{i} \cap D_{j}=\varnothing(i \neq j) D=D1D2DkDiDj=(i=j)

每次使用 k − 1 k-1 k1个自己的并集作为训练集,余下的那个子集作为测试集

  • 获得 k k k组训练/测试集
  • 进行 k k k次训练和测试

返回结果为 k k k个测试结果的均值

交叉验证也称为 k k k折交叉验证, k k k倍交叉验证

  • k k k常取10
  • 评估结果的稳定性和保真性很大程度上取决于 k k k的取值

留一法(Leave-One-Out,LOO)

数据集 D D D中包含 m m m个样本,令 k = m k=m k=m

  • 特点
    • 不受随机样本话费呢的影响
    • 实际评估的模型与期望评估的用 D D D训练出的模型很相似
  • 缺点
    • 当数据集比较大,计算开销是难以忍受的

在交叉验证法中,数据集 D D D划分为 k k k个子集同样存在多种划分方式,可将交叉验证重复划分 p p p次,最终结果为 p p p k k k次交叉验证结果的均值

  • 常见10次10折交叉验证

交叉验证法和留出法

“10次10折交叉验证” 与 “100次留出法” 都是进行了100次训练

2.2.3 自助法

以自助采样法(bootstrap)为基础

给定包含 m m m个样本的数据集 D D D

  • 每次随机从 D D D中挑选一个样本,将其拷贝放入 D ′ D^{\prime} D
  • 然后再将该样本放回到初始数据集 D D D
    • 使得该样本在下采样时仍可能被采到
  • 重复执行 m m m次后,就得到了包含 m m m个样本的数据集 D ′ D^{\prime} D

D D D中有一部分样本会在 D ′ D^{\prime} D中多次出现,而另一部分样本不出现

做简单的估计,样本在 m m m次采样中始终不被采到的概率是 ( 1 − 1 m ) m \left(1-\frac{1}{m}\right)^{m} (1m1)m

取极限可以得到

lim ⁡ m ↦ ∞ ( 1 − 1 m ) m ↦ 1 e ≈ 0.368 \lim _{m \mapsto \infty}\left(1-\frac{1}{m}\right)^{m} \mapsto \frac{1}{e} \approx 0.368 mlim(1m1)me10.368

初始数据集 D D D中约有 36.8 36.8% 36.8%的样本未出现在采样数据集 D ′ D^{\prime} D中,剩余的这36.8%样本作为测试集

包外估计(out-of-bag)

实际评估的模型和期望评估的模型都使用了 m m m个训练样本,但仍有约1/3没在训练集中出现,用于测试,这样的测试结果称为包外估计

留出法 v.s. 交叉验证法 v.s. 自助法

  • 初始数据量足够
    • 交叉验证法和留出法更常用
    • 自助法会引入估计偏差
  • 数据集较小难以划分训练/测试集时
    • 自助法很有用
  • 集成学习的应用场景下
    • 自助法能从初始数据集中产生多个不同的训练集,对此有好处

2.2.4 调参与最终模型

参数调节/调参

对算法参数进行设定

参数的选择方法

  • 设定范围和变化步长
    • 在计算开销和性能估计之间进行折中

基于验证集上的性能来进行模型选择和调参

2.3 性能度量

性能度量

  • 衡量模型泛化能力的评价标准
  • 反映了任务需求
    • 模型"好坏"是相对的,不仅取决于算法和数据,还决定于任务需求

回归任务的性能度量

均方误差

E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f ; D)=\frac{1}{m} \sum_{i=1}^{m}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)^{2} E(f;D)=m1i=1m(f(xi)yi)2

对于数据分布 D D D和概率密度函数 p ( ⋅ ) p(·) p(),均方误差

E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x E(f ; \mathcal{D})=\int_{\boldsymbol{x} \sim \mathcal{D}}(f(\boldsymbol{x})-y)^{2} p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x} E(f;D)=xD(f(x)y)2p(x)dx

分类任务的性能度量

2.3.1 错误率与精度

适用范围

二分类和多分类

定义

  • 错误率

    • 分类错误的样本数占样本总数的比例
    • E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ≠ y i ) E(f ; D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right) E(f;D)=m1i=1mI(f(xi)=yi)
  • 精度

    • 分类正确的样本数占样本总数的比例
    • acc ⁡ ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) = 1 − E ( f ; D ) \begin{aligned} \operatorname{acc}(f ; D) &=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=y_{i}\right) \\ &=1-E(f ; D) \end{aligned} acc(f;D)=m1i=1mI(f(xi)=yi)=1E(f;D)

更一般的描述

E ( f ; D ) = ∫ x ∼ D I ( f ( x ) ≠ y ) p ( x ) d x E(f ; \mathcal{D})=\int_{\boldsymbol{x} \sim \mathcal{D}} \mathbb{I}(f(\boldsymbol{x}) \neq y) p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x} E(f;D)=xDI(f(x)=y)p(x)dx

acc ⁡ ( f ; D ) = ∫ x ∼ D I ( f ( x ) = y ) p ( x ) d x = 1 − E ( f ; D ) \begin{aligned} \operatorname{acc}(f ; \mathcal{D}) &=\int_{\boldsymbol{x} \sim \mathcal{D}} \mathbb{I}(f(\boldsymbol{x})=y) p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x} \\ &=1-E(f ; \mathcal{D}) \end{aligned} acc(f;D)=xDI(f(x)=y)p(x)dx=1E(f;D)

2.3.2 查准率、查全率与F1

分类结果混淆矩阵

预测结果
真实情况 正例 反例
正例 TP真正例 FN假反例
反例 FP假正例 TN真反例

准确率 P P P

  • 查准率
  • P = T P T P + F P P=\frac{T P}{T P+F P} P=TP+FPTP

召回率 R R R

  • 查全率
  • R = T P T P + F N R=\frac{T P}{T P+F N} R=TP+FNTP

准确率和召回率之间的trade-off

一个高的情况下,另一个指标就会相对下降,通常只有在一些简单任务上,才可能使得两者都很高,具体需要那儿一指标比较高,需要根据具体的应用来进行设定

P-R曲线(P-R图)

召回率作为横轴,精确率作为纵轴

现实任务中P-R曲线常是非单调、不平滑的,在很多局部都有上下波动

不同P-R曲线之间的比较方法

(1) 包围情况

(2) 平衡点(Break-Event Point ,BEP)

(3) F1

包围情况下,即曲线A完全包围了曲线B,那么学习器A的性能优于学习器B的性能

平衡点

  • 准确率 = 召回率 准确率=召回率 准确率=召回率 时的取值
    • 当学习器A的平衡点取值大于学习器B的平衡点,则任务学习器A的性能优于学习器B

F 1 F1 F1

  • 基于准确率和召回率的调和平均(harmonic mean)

    • 1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) \frac{1}{F 1}=\frac{1}{2} \cdot\left(\frac{1}{P}+\frac{1}{R}\right) F11=21(P1+R1)
  • F 1 = 2 × P × R P + R = 2 × T P  样例总数  + T P − T N F 1=\frac{2 \times P \times R}{P+R}=\frac{2 \times T P}{\text { 样例总数 }+T P-T N} F1=P+R2×P×R= 样例总数 +TPTN2×TP

F 1 F1 F1 v.s. 算术平均 v.s. 几何平均

算术平均 P + R 2 \frac{P+R}{2} 2P+R

几何平均 P × R \sqrt{P \times R} P×R

F β F_{\beta} Fβ

  • F 1 F1 F1的一般形式
  • 1 F β = 1 1 + β 2 ⋅ ( 1 P + β 2 R ) \frac{1}{F_{\beta}}=\frac{1}{1+\beta^{2}} \cdot\left(\frac{1}{P}+\frac{\beta^{2}}{R}\right) Fβ1=1+β21(P1+Rβ2)
  • F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{\beta}=\frac{\left(1+\beta^{2}\right) \times P \times R}{\left(\beta^{2} \times P\right)+R} Fβ=(β2×P)+R(1+β2)×P×R
    • β = 1 \beta=1 β=1退化为标准的 F 1 F1 F1
    • β > 1 \beta >1 β>1 召回率有更大的影响
    • β < 1 \beta <1 β<1 准确率有更大的影响

n n n个二分类混淆矩阵上综合考虑准确率和召回率

 macro-  P = 1 n ∑ i = 1 n P i  macro-  R = 1 n ∑ i = 1 n R i  macro-  F 1 = 2 ×  macro-  P ×  macro-  R  macro-  P +  macro-  R . \begin{array}{c} \text { macro- } P=\frac{1}{n} \sum_{i=1}^{n} P_{i} \\ \text { macro- } R=\frac{1}{n} \sum_{i=1}^{n} R_{i} \\ \text { macro- } F 1=\frac{2 \times \text { macro- } P \times \text { macro- } R}{\text { macro- } P+\text { macro- } R} . \end{array}  macro- P=n1i=1nPi macro- R=n1i=1nRi macro- F1= macro- P+ macro- R2× macro- P× macro- R.

 micro-  P = T P ‾ T P ‾ + F P ‾ ,  micro-  R = T P ‾ T P ‾ + F N ‾ ,  micro-  F 1 = 2 ×  micro-  P ×  micro-  R  micro-  P +  micro-  R . \begin{array}{c} \text { micro- } P=\frac{\overline{T P}}{\overline{T P}+\overline{F P}}, \\ \text { micro- } R=\frac{\overline{T P}}{\overline{T P}+\overline{F N}}, \\ \text { micro- } F 1=\frac{2 \times \text { micro- } P \times \text { micro- } R}{\text { micro- } P+\text { micro- } R} . \end{array}  micro- P=TP+FPTP, micro- R=TP+FNTP, micro- F1= micro- P+ micro- R2× micro- P× micro- R.

错误率 v.s. 精度 v.s. 查准率 v.s. 查全率

常用错误率和精度,但在一些应用中如信息检索、Web搜索等应用中需要查准率和查全率的需求

2.3.3 ROC与AUC

2.3.4 代价敏感错误率与代价曲线

2.4比较检验

2.4.1假设检验

2.4.2交叉检验t检验

2.4.3McNemar检验

2.4.4 Friedman检验与Nemenyi后续检验

2.5 偏差与方差

参考资料

[1]周志华. 《机器学习》[J]. 中国民商, 2016, 03(No.21):93-93.

你可能感兴趣的:(机器学习,机器学习,学习,人工智能)