• 西瓜书-2.4模型评估与选择


    2.4-比较检验

    使用某种实验评估方法测得学习器的某个性能度量结果,之后对结果进行比较,但比较并非直接比较性能度量的值,性能比较涉及几个重要因素:

    1. 比较泛化性能,通过实验评估方法获得的是测试集上的性能,二者对比结果未必相同。
    2. 测试集上的性能 与测试集的选择有关,且即使相同测试集,但测试样例不同,测试结果也不同。
    3. 机器学习算法本身有一定随机性。

    (默认错误率为性能度量,符合为 ϵ \epsilon ϵ)

    统计假设检验为性能比较提供依据,2种基本假设检验如下:

    2.4.1-假设检验

    • 对象

    单个学习器泛化性能比较,使用了二项检验、t检验方法。

    • 介绍

    假设是指对学习器泛化错误率分布的某种判断或猜想。

    实际中不清楚学习器的泛化错误率,只能得到其测试错误率 ϵ ^ \hat {\epsilon} ϵ^,二者未必相同,但接近可能性较大,故可根据测试错误率估推泛化错误率的分布

    泛化错误率 ϵ \epsilon ϵ:学习器在1个样本上犯错的概率= ϵ \epsilon ϵ

    测试错误率 ϵ ^ \hat \epsilon ϵ^:在m个测试样本中恰有 ( ϵ ^ ∗ m ) (\hat\epsilon* m) (ϵ^m)个被误分类

    若测试样本从样本总体分布中独立采样获得,而泛化错误率 ϵ \epsilon ϵ的学习器将其中m个样本误分类、其余样本全都分类正确的概率是** ϵ m ′ ( 1 − ϵ m − m ′ ) \epsilon ^{m^{'}}(1- \epsilon ^{m-m^{'}}) ϵm(1ϵmm)**;则估算出其恰将 ϵ ^ ∗ m \hat \epsilon * m ϵ^m个样本全部误分类的概率如下所示,也表示包含m个样本的测试集上,泛化错误率为 ϵ \epsilon ϵ的学习器被测得测试错误率 ϵ ^ \hat { \epsilon } ϵ^的概率:
    P ( ϵ ^ ; ϵ ) = ( m ϵ ^ ∗ m ) ϵ ϵ ^ ∗ m ( 1 − ϵ ) m − ϵ ^ ∗ m ( 2.4 − 1 ) P(\hat {\epsilon};\epsilon)=\binom{m}{\hat {\epsilon}*m}\epsilon ^{\hat {\epsilon}*m} (1-\epsilon)^{m-\hat{ \epsilon }*m } \qquad (2.4-1) P(ϵ^;ϵ)=(ϵ^mm)ϵϵ^m(1ϵ)mϵ^m(2.41)

    • 二项检验

    给定测试错误率,则解偏导数得到, P ( ϵ ^ ; ϵ ) P(\hat {\epsilon};\epsilon) P(ϵ^;ϵ) ϵ = ϵ ^ {\epsilon}=\hat \epsilon ϵ=ϵ^时最大, ϵ 到 ϵ ^ {\epsilon}到\hat \epsilon ϵϵ^距离增大时P减小,符合二项分布

    补充:

    1. 置信度是 1 − α 。 置信水平是指总体参数值落在样本统计值某一区内的概率,一般用 1 − α 表示; 而置信区间是指在某一置信水平下,样本统计值与总体参数值间误差范围。 置信度是1-\alpha。 \\ 置信水平是指总体参数值落在样本统计值某一区内的概率,一般用1-\alpha表示;\\ 而置信区间是指在某一置信水平下,样本统计值与总体参数值间误差范围。 置信度是1α置信水平是指总体参数值落在样本统计值某一区内的概率,一般用1α表示;而置信区间是指在某一置信水平下,样本统计值与总体参数值间误差范围。
    2. s.t.是”subject to“的简写,使左边式子在右边条件满足时成立。

    使用二项检验,考虑假设” ϵ ≤ ϵ 0 {\epsilon} \le \epsilon_{0} ϵϵ0“,则在 1 − α 1-\alpha 1α的概率内所能观测到的最大错误率如下:
    ϵ ‾ = m a x ϵ s . t . ∑ i = ϵ 0 ∗ m + 1 m ( m i ) ϵ i ( 1 − ϵ ) m − i < α ( 2.4 − 2 ) \overline \epsilon = max\quad \epsilon \qquad s.t. \sum_{i=\epsilon _0 *m+1}^{m} \binom{m}{i} \epsilon ^i {(1-\epsilon)}^{m-i}< \alpha \qquad (2.4-2) ϵ=maxϵs.t.i=ϵ0m+1m(im)ϵi(1ϵ)mi<α(2.42)
    此时若 测试错误率 ϵ ^ < 临界值 ϵ ‾ 测试错误率\hat {\epsilon} < 临界值 \overline \epsilon 测试错误率ϵ^<临界值ϵ,则根据二项检验可得出结论:在 α \alpha α的显著度下,假设” ϵ ≤ ϵ 0 {\epsilon} \le \epsilon_{0} ϵϵ0“不能被拒绝,即能以 1 − α 1-\alpha 1α的置信度认为,学习器的泛化错误率不大于 ϵ 0 \epsilon_{0} ϵ0;否则该假设可被拒绝。

    一般是多次重复留出法或交叉验证法等进行多次训练/测试,这会得到多个测试错误率,使用“t检验”。

    假定得到了k个测试错误率, ϵ ^ 1 , ϵ ^ 2 , . . . , ϵ ^ k {\hat \epsilon}_1,{\hat \epsilon}_2,...,{\hat \epsilon}_k ϵ^1,ϵ^2,...,ϵ^k,从而引入平均测试错误率 μ \mu μ和方差 σ 2 \sigma^2 σ2,如下:
    μ = 1 k ∑ i = 1 k ϵ ^ i ( 2.4 − 3 ) σ 2 = 1 k − 1 ∑ i = 1 k ( ϵ ^ i − μ ) 2 ( 2.4 − 4 ) \mu = \frac{1}{k} \sum_{i=1}^{k} {\hat \epsilon }_i \qquad (2.4-3)\\ \sigma ^2 = \frac{1}{k-1} \sum_{i=1}^{k}({\hat \epsilon }_i-\mu)^2 \qquad (2.4-4) μ=k1i=1kϵ^i(2.43)σ2=k11i=1k(ϵ^iμ)2(2.44)
    考虑到k个测试错误率可看作泛化错误率 ϵ 0 \epsilon_0 ϵ0的独立采样,则变量
    τ t = k ( μ − ϵ 0 ) σ ( 2.4 − 5 ) \tau_t=\frac{\sqrt{k}(\mu -\epsilon _0) }{\sigma} \qquad (2.4-5) τt=σk (μϵ0)(2.45)
    服从自由度为k-1的t分布。

    2.4.2-交叉验证t检验

    • 对象

    不同学习器性能进行比较。

    • 方法

    对学习器A和B,使用k折交叉验证法分别2得到测试错误率 ϵ 1 A , . . . , ϵ k A 和 ϵ 1 B , . . . , ϵ k A B \epsilon_1^A,...,\epsilon_k^A和\epsilon_1^B,...,\epsilon_k^AB ϵ1A,...,ϵkAϵ1B,...,ϵkAB,其中 ϵ i A 和 ϵ i B \epsilon_i^A和\epsilon_i^B ϵiAϵiB是在相同第i折训练/测试集上得到的结果,可用k折交叉验证“成对t检验”。

    思想:若2个学习器的性能相同,则使用相同的训练集/测试集得到的测试错误率相同,即** ϵ i A = ϵ i B \epsilon_i^A=\epsilon_i^B ϵiA=ϵiB**。

    先对每队结果求差,即 Δ i = ϵ i A − ϵ i B \Delta _i=\epsilon_i^A-\epsilon_i^B Δi=ϵiAϵiB;若2个学习器性能相同,则差值均值=0.因此,据差值 Δ 1 , . . . , Δ k \Delta_1,...,\Delta_k Δ1,...,Δk来对“学习器A和B性能相同”这个假设做t检验,得到均值 μ \mu μ和方差 σ 2 \sigma^2 σ2,在显著度 α \alpha α下,若变量
    τ t = ∣ k μ σ ∣ ( 2.4 − 6 ) \tau_t=\left |\frac{\sqrt{k}\mu }{\sigma} \right | \qquad (2.4-6) τt= σk μ (2.46)
    小于临界值 t α / 2 , k − 1 t_{\alpha /2,k-1} tα/2,k1,则假设不能被拒绝,认为学习器A和B性能没有显著差异;否则存在显著差异,且平均错误率较小的那个学习器性能较优

    t α / 2 , k − 1 t_{\alpha /2,k-1} tα/2,k1是自由度k-1的t分布上尾部累积分布为 α / 2 \alpha/2 α/2的临界值。

    • 问题

    假设检验有效的1个重要前提是测试错误率均为泛化错误率的独立采样

    然而实际由于样本有限,在使用交叉验证等实验估计方法时,不同轮次的训练集会有一定程度上的重叠,使得测试错误率实际上并不独立,会导致过高估计假设成立的概率,为缓解这一问题,可采用“5*2交叉验证法”,即做5次2折交叉验证,每次2折交叉验证之前随机将数据打乱,使得5次交叉验证中的数据划分不重复。

    2.4.3-McNemar检验

    • 对象

    对于二分类问题、使用留出法不同学习器性能比较

    • 内容

    就二分类问题,使用留出法时,可获得学习器A和B的测试错误率且得到分类结果的差别,即都正确、都错误、1对1错,“列联表”如下:

    算法A
    算法B正确错误
    正确 e 00 e_{00} e00 e 01 e_{01} e01
    错误 e 10 e_{10} e10 e 11 e_{11} e11

    若假设学习器A和B性能相同,则应有 e 01 = e 10 e_{01}=e_{10} e01=e10,其变量 ∣ e 01 − e 10 ∣ |e_{01}-e_{10}| e01e10应服从正态分布,且均值为1,以及其他衍生而出的变量服从另外一些分布。当变量满足条件,则假设成立,即A和B性能没有显著差异,否则两者性能有显著差异,且平均错误率小的学习器性能更优。

    2.4.4-Friedman检验与Nemenyi后续检验

    • 对象

    对于多个数据集多个学习器进行性能比较。

    • 内容

      当有多个学习器参与比较时,

      • 一种方法是在每个数据集上分布列出两两比较的结果,而在两两比较时可使用交叉验证t检验。
      • 另一种方法更为直接,使用基于算法排序的Friedman检验。
    • 案例

    D 1 、 D 2 、 D 3 、 D 4 D_1、D_2、D_3、D_4 D1D2D3D44个数据集对算法 A 、 B 、 C A、B、C ABC比较。

    1. 使用留出法或交叉验证法得到每个算法在每个数据集上的测试结果。

    2. 在每个数据集上根据测试性能由好到坏排序,并赋予序值1、2…;若算法的测试性能相同,则平分序值,如:

      数据集算法A算法B算法C
      D 1 D_1 D1123
      D 2 D_2 D212.52.5
      D 3 D_3 D3123
      D 4 D_4 D4123
      平均序值12.1252.875
    3. 使用Friedman检验来判断算法是否性能相同。若相同,则它们平均序值应当相同。如假定在N个数据集上比较k个算法,令 r i r_i ri表示第i个算法的平均序值,先暂不讨论平分序值的情况,则 r i r_i ri服从正态分布,其衍生变量也服从卡方分布。

    4. 上述“原始Friedman检验”过于保守,现使用新的衍生变量,其服从F分布。

    5. 若“所有算法性能相同”的假设被拒绝,则算法性能显著不同,此时用“后续验证”来进一步区分各算法,常用有“Nemenyi后续检验”。

    6. Nemenyi后续检验计算出平均序值差别的临界值域 C D CD CD。若2个算法的平均序值之差超过临界值域 C D CD CD,则以相应的置信度拒绝“2个算法性能相同”这一假设。

    7. 上述检验可以直观使用Friedman检验图显示。

  • 相关阅读:
    机器学习案例(七):产品需求预测
    【Floyd - Warshall 弗洛伊德算法+看了3篇总结出的思路】案例6-1.6 哈利·波特的考试
    DLP迈向NG DLP的进化之路
    Flutter | Stack 超出部分不响应手势的独特解决方案
    2023年软考什么时候报名,报名有什么条件?
    IB幼儿课程怎么理解?
    vue课程75 axios是只专注于网络请求的库
    一篇五分生信临床模型预测文章代码复现——Figure 3. 基因富集分析(一)
    提升珠宝管理效率的新零售行业RFID应用解决方案
    Git-cherry pick的使用
  • 原文地址:https://blog.csdn.net/qq_43447401/article/details/126584769