论文阅读:Statistical Comparisons of Classifiers over Multiple Data Sets

论文地址:Statistical Comparisons of Classifiers over Multiple Data Sets (acm.org)


前面在机器学习之Friedman检验-CSDN博客

中提到了Friedman检验,这里将对这个方法的论文进行详细的阅读,以了解其原理。


摘要

尽管用于在单个数据集上比较两种学习算法的方法已经研究了相当长时间,但针对在多个数据集上比较更多算法的统计检验问题,却几乎被忽视。然而,这对于典型的机器学习研究至关重要。本文回顾了当前的实践,并从理论和实验的角度对几种适用的检验方法进行了分析。基于此,我们推荐了一组简单但安全且稳健的非参数统计检验方法,用于分类器的统计比较:

  1. Wilcoxon 符号秩检验(Wilcoxon signed ranks test):用于比较两个分类器的性能。
  2. Friedman 检验及其对应的事后检验(post-hoc tests):用于比较多个分类器在多个数据集上的表现。

此外,对于 Friedman 检验的结果,可以通过新引入的CD(临界差异,Critical Difference)图以简洁直观的方式呈现。

1引言

近年来,机器学习领域越来越认识到对研究结果进行统计验证的必要性。这种趋势可以归因于以下几个因素:领域的日益成熟、真实世界应用数量的增加,以及开放的机器学习框架的普及。这些框架使得开发新算法或修改现有算法变得更加便捷,并能够轻松进行相互比较。

在典型的机器学习论文中,通常提出一种新的算法、其组成部分或某些新的预处理或后处理步骤,并隐含地假设这种改进能够提升现有算法的性能。或者,论文可能提出针对问题的多种解决方案,目标是区分成功与失败的方法。研究人员选取若干数据集进行测试,运行算法,并使用适当的指标(最常见的是分类准确率)评估所得模型的质量。然而,验证性能提升假设的统计检验过程却是一个关键步骤,也是本文讨论的主题。

相关理论工作与现有实践表明,研究人员已提出多种方法用于在单个数据集上比较两个分类器,例如 McNemar 检验和 5×2 交叉验证,这些方法逐渐取代了过于自信的基于交叉验证折叠的配对 t 检验。然而,在多个数据集上比较多个分类器的情况(尤其是测试算法在一般场景中的表现,而非某些特定问题上的表现)仍然缺乏理论支持,目前通常采用的是临时性的程序,这些方法要么缺乏统计依据,要么不当使用统计方法。

为了了解实际实践中采用的方法,作者研究了 1999 至 2003 年间国际机器学习会议的论文集。观察发现,许多优秀的机器学习论文仍然依赖 McNemar 检验等配对比较方法绘制分类器对比矩阵,忽略了用于多重比较的检验(如 ANOVA 和 Friedman 检验)。

本文的核心是研究可用于在多个数据集上比较两个或多个分类器的统计检验方法。假设研究中测试了 k种学习算法,并在 N 个数据集上评估其性能,记第 i 个数据集上第 j 个算法的性能得分为 cij。任务是根据这些值判断算法间是否存在统计学上的显著差异,并在多于两种算法的情况下,找出具体表现不同的算法。本文不记录性能得分的方差\sigma_{c_{ij}},但假设测量结果是可靠的,这意味着每个数据集上进行了足够多的实验,并且最好所有算法都在相同的随机样本上进行评估。此外,本文对采样方案不做其他假设。

2相关工作

对实验结果进行统计评估一直被认为是验证新机器学习方法的重要组成部分。然而,所使用的统计检验方法长期以来一直较为简单且未经验证。虽然关于在单一问题上比较一对分类器的方法已经提出了近十年,但针对更多分类器和/或更多数据集的比较研究,仍然采用的是部分且不令人满意的解决方案。

2.1 相关理论工作

该领域被广泛引用的论文之一是 Dietterich(1998)提出的论文。在描述了机器学习中的统计问题分类法后,他将重点放在如何决定在给定数据集上,哪一个算法能够产生更准确的分类器的问题上。他研究了五种统计检验方法,并通过推荐新设计的5×2交叉验证 t 检验,得出结论,5×2cv t 检验克服了传统配对 t 检验在交叉验证折叠中低估方差,从而导致更高的 I 型错误的问题。

对于不适合多次运行算法的情况,Dietterich 认为,McNemar 检验(基于误分类矩阵)与 5×2cv t 检验同样有效。他警告不要在重复的随机采样后使用 t 检验,也不推荐在交叉验证后使用 t 检验。Alpaydın(1999)改进了 5×2cv t 检验,提出了一个更稳健的 5×2cv F 检验,具有更低的 I 型错误和更高的统计功效。Bouckaert(2003)则认为,由于实验之间的依赖性,理论上的自由度是错误的,应该使用经验值;而 Nadeau 和 Bengio(2000)提出了校正的重采样 t 检验,基于示例子集之间的重叠调整方差。Bouckaert 和 Frank(2004)进一步研究了机器学习实验的可复制性,发现 5×2cv t 检验并不令人满意,选择了校正后的重采样 t 检验。关于估算 k 折交叉验证方差的更一般性研究,请参阅 Bengio 和 Grandvalet(2004)的工作。

上述研究均未涉及如何评估多个分类器的性能,也未探讨当分类器在多个数据集上进行测试时,统计方法的适用性。在前者的情况下,Salzberg(1997)提到了 ANOVA 作为可能的解决方案,但随即描述了用于多重比较的二项检验和 Bonferroni 校正。正如 Salzberg 自己所指出的,二项检验的功效不如较好的非参数检验,而 Bonferroni 校正过于严格。例如,Vazquez 等(2001)和 Pizarro 等(2002)使用 ANOVA 和 Friedman 检验对单个数据集上多个模型(特别是神经网络)进行比较。

最后,针对多个数据集上的分类器比较,Hull(1994)据我们所知是首个使用非参数检验来比较信息检索和文档相关性评估中的分类器的研究者(参见 Schutze 等,1995)。Brazdil 和 Soares(2000)使用平均排名来比较分类算法。他们的目标是选择最优算法,但并未对分类器之间的差异进行统计显著性检验。

2.2 实践中的检验:ICML 论文分析

作者分析了五届最近的国际机器学习会议(1999-2003)中的论文。重点关注了那些通过衡量分类准确率、均方误差、AUC(Beck 和 Schultz,1986)、精确率/召回率或其他模型性能指标,比较至少两个分类器的论文。

用于评估分类器性能的采样方法和指标与本研究直接相关性不大。令人惊讶的是,尽管来自医学界(Beck 和 Schultz,1986;Bellazzi 和 Zupan,1998)和机器学习领域(Provost 等,1998;Langley,2000)呼吁使用 AUC 等其他衡量标准,分类准确率通常仍然是唯一使用的指标。分类准确率的唯一竞争者是文档检索领域中使用的指标。这也是唯一一个数据量充足,允许使用独立测试数据集,而不是使用交叉验证或随机抽样的领域。

对于作者的论文来说,更感兴趣的是分析算法差异的方法。所研究的论文发布了多个数据集上两种或更多分类器的结果,通常以表格形式呈现。我们没有记录其中有多少篇包括关于分类器总体性能的(非正式)陈述。然而,大约四分之一到一半的论文包括某些统计程序,用于确定最优方法或比较各方法的表现。

比较分类器的最直接方法是计算所有数据集的平均值;这种平均方式显得过于简单,且很少使用。配对 t 检验几乎是唯一用于评估差异统计显著性的方法。它们可以分为三类:仅比较两种方法、将一种方法(新的方法或基准方法)与其他方法进行比较,或者将所有方法彼此比较。尽管对多重假设检验有反复的警告,Bonferroni 校正在 ICML 论文中每年仅使用少数几篇。常见的非参数方法是计算算法表现更好、更差或与其他算法相同的次数;这种计数有时是成对进行的,生成一个胜/平/负的矩阵,另一种选择是计算算法在多少个数据集上表现优于所有其他算法。

一些作者倾向于仅计算那些在统计上显著的差异;为验证这一点,他们使用了上述审查过的各种比较两个算法的技术。

这些数据需要谨慎对待。一些论文没有明确描述所使用的采样和测试方法。此外,通常很难判断特定的采样程序、测试或质量测量是否等同于通用方法。

3分类器比较的统计学与检验

概述表明,目前没有公认的程序用于在多个数据集上比较分类器。不同的研究人员采用不同的统计方法和常识性技术来决定算法之间的差异是真实的还是随机的。本节将考察几种已知的和不太为人所知的统计检验方法,并从它们实际测量的内容及其对数据假设的安全性角度研究它们的适用性。

作为起点,两个或更多学习算法已经在一组合适的数据集上运行,并通过分类准确率、AUC或其他某种指标进行评估(参见表2和表6中的示例)。作者没有记录这些结果在多个样本中的方差,因此假设采样方案没有偏差。唯一的要求是,编制的结果提供了对每个数据集上算法性能的可靠估计。在通常的实验设置中,这些数字来自交叉验证或通过反复的分层随机划分训练集和测试集。

在评估两个分类器在单一数据集上的差异与在多个数据集上的差异时,存在根本的区别。在单一数据集上进行测试时,作者通常计算平均性能及其在随机样本上的重复训练和测试过程中的方差。由于这些样本通常是相关的,因此在设计统计程序和检验时需要特别小心,避免偏倚的方差估计问题。

在作者的任务中,对每个数据集的多次重采样仅用于评估性能得分,而不是其方差。方差的来源是不同数据集上的性能差异,而不是(通常是相关的)样本上的差异,因此提高的I型误差不是问题。由于多次重采样不会偏倚得分估计,因此可以使用各种类型的交叉验证或留一法程序,而不会有任何风险。

此外,比较单一数据集上分类器的正确统计检验问题与在多个数据集上进行比较的问题并不直接相关,因为作者不需要先解决前者的问题来处理后者。由于在多个数据集上运行算法自然会得到独立测量的样本,因此在多个数据集上的比较比在单一数据集上的比较要简单。

作者还应强调,以下部分中的"样本大小"将指的是使用的数据集数量,而不是从每个单独数据集中抽取的训练/测试样本数量或每个数据集中的实例数量。因此,样本大小可以小到五个,通常远低于30。

3.1 两个分类器的比较

在讨论两个分类器在多个数据集上的比较检验时,提出两个观点。首先,将警告广泛使用的t检验,因为它通常在概念上不合适,且在统计上不安全。由于最终将推荐使用Wilcoxon(1945)符号秩检验,因此会详细介绍这一方法。另一个更少使用的检验是符号检验,它比Wilcoxon检验弱,但也有其独特的优点。第二个观点是,这些统计量从不同的角度衡量分类器之间的差异,因此选择检验时不仅应考虑统计的适用性,还应考虑打算测量的内容。

3.1.1 数据集上的平均值

一些机器学习论文的作者计算了分类器在测试数据集上的平均分类准确率。正如Webb(2000年)所说:"不同领域的错误率是否具有可比性,以及跨领域平均错误率是否有意义,这是一个值得争论的问题。"如果不同数据集上的结果不可比,那么它们的平均值是没有意义的。另一种情况是,算法在一组相关问题上进行比较,例如来自不同机构的某种疾病的医学数据库,或具有相似特性的各种文本挖掘问题。

平均值还容易受到异常值的影响。它们允许分类器在一个数据集上的优秀表现弥补整体差的表现,或者相反,一个领域的完全失败可能会压倒在大多数其他领域上的公正结果。有些情况下,这种行为是期望的,但一般而言,我们更倾向于选择在尽可能多的问题上表现良好的分类器,这使得在数据集上进行平均变得不合适。

鉴于并不是很多论文报告这样的平均值,作者假设学术界普遍认为它们没有意义。因此,平均值也不用于(也没有意义)进行z检验或t检验的统计推断。

3.1.2配对t检验

检验两个分类器在多个数据集上的结果差异是否非随机的常见方法是计算配对t检验,它检验两个分类器在数据集上的性能平均差异是否显著不同于零。

设 c_1^i 和c_2^i 分别为两个分类器在第 i个数据集上的性能得分,di为差异c_2^i - c_1^i。t统计量计算公式为 d/σd,并且按照学生t分布(Student's t-distribution)分布,自由度为 N−1。

在作者的应用场景中,t检验有三个问题。第一个问题是可比性:**t检验只有在数据集之间的差异具有可比性时才有意义。**从这个角度来看,使用配对t检验来比较两个分类器就像在不同数据集上计算平均值一样没有意义。平均差异 d 等于两个分类器得分的平均差异 d=c2−c1。这种形式的t检验与使用t检验直接比较两个平均值(对于不相关样本)之间唯一的区别在于分母:配对t检验通过数据集之间的方差(或换句话说,通过分类器之间的协方差)减少了标准误差 σd。

Webb(2000年)通过计算相对比率的几何平均数来解决可比性问题,公式为 。由于这个统计量等于,它本质上与普通的平均数相同,只是比较的是得分的对数。因此,这种转换的实用性是值得怀疑的。Quinlan(1996年)计算相对比率的算术平均数;由于分布偏斜,这些平均数不能直接用于t检验,除非进一步操作。

一个更简单的补偿不同问题复杂度的方法是通过平均得分来除以差异,公式为

t检验的第二个问题是,除非样本量足够大(约30个数据集),配对t检验要求比较的两个随机变量之间的差异遵循正态分布。作者的问题性质并未提供正态性假设,并且数据集的数量通常远少于30个。具有讽刺意味的是,Kolmogorov-Smirnov检验及类似的检验正态性的方法在小样本下的检测能力很差,即它们不太可能发现分布异常并警告不要使用t检验。因此,为了使用t检验,需要正态分布,但小样本同时也禁止我们检查分布形状。

第三个问题是,**t检验和数据集的平均值一样,会受到异常值的影响,**这些异常值会扭曲检验统计量并通过增加估计的标准误差来降低检验的效能。

3.1.3 Wilcoxon符号秩检验

Wilcoxon符号秩检验(Wilcoxon, 1945)是一种非参数检验方法,是配对t检验的替代方案。它通过对两个分类器在每个数据集上的性能差异进行排序(忽略差异的符号)并比较正差异和负差异的秩和来判断差异的显著性。

设第 i 个数据集上的性能得分差异为 di。这些差异按照绝对值从小到大排序,并在有重复值时赋予平均秩。对第二个算法优于第一个算法的数据集的秩和记为 R+,而对第一个算法优于第二个算法的数据集的秩和记为 R−-。对于差异 di=0 的情况,其秩被均分给 R+和 R−-,若个数为奇数,则忽略一个值:

统计量 T 取较小的秩和,即 T=min⁡(R+,R−)。统计学书籍通常为 N≤25的数据集提供了 T 的精确临界值表。对于更大的数据集数量,统计量

近似服从正态分布。对于显著性水平 α=0.05,当 z小于 -1.96 时,可以拒绝原假设。

示例

表2比较了C4.5算法(叶节点最小样本数 m=0)与C4.5调优后的AUC(通过5折交叉验证选择最佳 m )在14个UCI二分类数据集上的性能。

作者试图检验两个算法性能是否显著不同。

在两个数据集(肺癌和蘑菇)上,两个分类器表现相同;如果有奇数个相同值,则忽略其中一个。差异按照绝对值从小到大排序,相同差异赋予平均秩。

正差异秩和为:

R+=3.5+9+12+5+6+14+11+13+8+10+1.5=93

负差异秩和为:

R−=7+3.5+1.5=12

根据Wilcoxon检验临界值表,在 α=0.05和 N=14时,若较小的秩和不超过21,则可以拒绝原假设。因此,可以拒绝假设两分类器性能相同的原假设。

特点与优劣

Wilcoxon符号秩检验比t检验更为灵敏。它假设差异具有一致性,但只在定性上要求如此:较大的差异权重更高,这通常是期望的,但忽略了绝对值的大小。从统计角度来看,由于不假设正态分布,Wilcoxon检验更为安全。此外,极端值(在少数数据集上的异常好/差表现)对Wilcoxon检验的影响小于对t检验的影响。

Wilcoxon检验假设差异 di是连续的,因此不应将其截断为一两位小数,否则会因大量重复值而降低检验效能。当配对t检验的假设满足时,Wilcoxon检验的效能低于t检验;但当假设不满足时,Wilcoxon检验可能更为强大。

3.1.4 胜、负和平局的计数:符号检验

一种比较分类器整体性能的流行方法是统计每个算法在数据集上的胜出次数。当比较多个算法时,可以将成对比较的结果组织成矩阵形式。

一些研究者将这种计数用于推断统计,采用一种称为符号检验的方法(Sheskin, 2000;Salzberg, 1997)。在原假设下,假设两个算法性能相等,则每个算法应当在 N 个数据集中各胜出约 N/2 次。胜出次数服从二项分布,其临界值可参考表3。

对于更多的数据集,胜出次数在原假设下服从正态分布 ,可以使用z检验:如果胜出次数至少为 (或简化为),则可以认为该算法显著优于另一算法,显著性水平 p<0.05。

由于平局支持原假设,因此不应忽略平局,而是将平局平均分配给两个分类器;如果平局数量为奇数,则忽略其中一个。在表2的示例中,C4.5+m在14个数据集中胜出11次(包括两个分类器平局的一个数据集)。根据表3,这一差异在 p<0.05下显著。

特点与优势

符号检验不要求得分或差异具有可比性,也不要求正态分布,因此适用于任何数据集(只要观测值,即数据集是独立的)。但它远不如Wilcoxon符号秩检验强大。根据表3,符号检验仅在一个算法几乎总是优于另一个算法时才会拒绝原假设。

关于显著性胜负的争议

一些作者倾向于仅统计显著性胜出和失败的次数,显著性通常通过每个数据集上的统计检验(例如Dietterich的5×2交叉验证)确定。他们认为"某些胜负是随机的,不应计入"。这一观点的前提是统计检验能区分随机和非随机差异。然而,统计检验只测量实验结果在原假设成立下出现的可能性,而非原假设本身的(不)可能性。

为了说明这一点,假设在1000个数据集上比较两个算法,每次算法A都优于算法B,但差异从未显著。尽管单次结果的差异可能是随机的,但算法A在1000次独立实验中全部胜出的概率几乎为零。因此,仅统计显著性胜负的做法并未使检验更加可靠,反而由于人为设定的 p<0.05 阈值降低了可靠性。

3.2 多分类器的比较

上述的统计检验方法均未设计用于推导多个随机变量均值的比较。然而,许多机器学习论文的作者仍然使用这些方法来达到这一目的。例如,一种常见但有问题的做法是通过所有21对分类器的成对t检验来比较七种算法,并报告诸如"算法A显著优于B和C,算法A和E显著优于D,而其他分类器之间无显著差异"之类的结果。当进行如此多的检验时,某些原假设仅因随机原因被拒绝,这种列举结果的做法意义不大。

多重假设检验问题

多重假设检验的问题是统计学中众所周知的一个问题。通常的目标是控制"家族错误率"(Family-Wise Error Rate, FWER),即在所有比较中至少犯一次I类错误的概率。机器学习文献中,Salzberg(1997)提到了多重检验问题的一种通用解决方案------Bonferroni校正。然而,他也指出,该方法通常过于保守和弱,因为它假定假设之间相互独立。

更强大的统计方法

统计学提供了更强大的专门程序,用于检验多个均值之间差异的显著性。在当前情境下,最有趣的两种方法是广为人知的 ANOVA (方差分析)及其非参数对应方法 Friedman检验 。后者,特别是其对应的 Nemenyi事后检验,虽然较少为人所知,相关文献也相对稀缺,但具有重要意义。因此,我们将对其进行更详细的介绍。

3.2.1 方差分析 (ANOVA)

一种常见的统计方法,用于检验两个以上相关样本均值之间的差异,是重复测量方差分析(Repeated-Measures ANOVA,或被试内ANOVA)(Fisher, 1959)。这里的"相关样本"指的是通过相同的数据集(最好是相同的训练集和测试集划分)测量的分类器性能。其原假设是:所有分类器的性能相同,观察到的差异仅是随机产生的。

ANOVA的原理

ANOVA将总变异性划分为三部分:

  1. 分类器之间的变异性:表示分类器性能之间的差异。
  2. 数据集之间的变异性:表示数据集本身的差异对结果的影响。
  3. 残差(误差)变异性:表示无法解释的随机变异。

如果分类器之间的变异性显著大于误差变异性,则可以拒绝原假设,并推断分类器之间确实存在差异。在这种情况下,可以使用事后检验进一步确定哪些分类器之间存在差异。

事后检验方法

对于ANOVA,适用于当前情景的两种主要事后检验方法是:

  • Tukey检验(Tukey, 1949):用于比较所有分类器之间的差异。
  • Dunnett检验(Dunnett, 1980):用于将所有分类器与一个控制组进行比较(例如,将基础分类器与改进后的版本或新提出的分类器与现有方法比较)。

这两种方法通过将残差方差除以数据集数量来计算分类器之间差异的标准误差。然后,性能差异与标准误差的比值会与临界值进行比较。为了确保成对比较的错误率不超过5%,Tukey和Dunnett方法的临界值比普通t检验的更高。

ANOVA的局限性

然而,ANOVA基于以下假设,而这些假设在分析机器学习算法性能时往往会被违反:

  1. 样本来自正态分布:尽管分类精度在问题集上的分布通常无法保证正态性,这种偏离通常影响不大,除非分布明显双峰(Hamilton, 1990)。
  2. 球形性假设:与普通ANOVA的方差齐性类似,要求随机变量具有相等的方差。由于学习算法和数据集的特性,这一假设往往不成立。

这些假设的违反对事后检验的影响尤为显著。因此,ANOVA似乎并不适合作为典型机器学习研究中的通用检验方法。

结论

由于对参数检验的保留意见以及这些检验在统计文献中已被广泛讨论(Zar, 1998;Sheskin, 2000),作者没有进一步详细描述ANOVA及其事后检验方法。

3.2.2 弗里德曼检验 (Friedman Test)

++弗里德曼检验 (Friedman, 1937, 1940) 是重复测量方差分析 (ANOVA) 的一种非参数替代方法。它针对每个数据集分别为算法排名,表现最好的算法排名为1,次优为2,依此类推,如表6所示。当出现并列时(如在 iris、肺癌、蘑菇和主要肿瘤数据集中),分配平均排名。++

原理

令 rji为第 i 个数据集中第 j 个算法的排名,比较算法的平均排名。在原假设下(所有算法等效,即排名 Rj应相等),弗里德曼统计量计算公式为:

当 N和 k 足够大时(经验规则为 N>10, k>5),该统计量服从自由度为 k−1 的 χ2分布。对于较小的数据集和算法数量,已有确切的临界值计算 (Zar, 1998; Sheskin, 2000)。

改进

Iman 和 Davenport (1980) 发现弗里德曼的统计量 χF2 过于保守,提出了改进统计量:

该统计量服从自由度为 k−1和 (k−1)(N−1)的 F 分布,相关临界值可在统计书籍中查找。

能力比较

与两分类器比较时的非参数检验类似,弗里德曼检验的理论效能低于满足假设的参数方法(如ANOVA),但当ANOVA的假设不成立时,这种比较可能会逆转。Friedman (1940) 在56个独立问题上比较了ANOVA和其方法,结果显示两者大多数情况下一致。当一方法在 p<0.01下显著时,另一方法至少在 p<0.05 下显著。仅在2个案例中,ANOVA检测到显著而弗里德曼未检测到,反之亦然的情况则发生在4个案例中。

事后检验

如果原假设被拒绝,可继续进行事后检验。Nemenyi检验 (Nemenyi, 1963) 类似于ANOVA中的Tukey检验,适用于对所有分类器进行两两比较。当两个分类器的平均排名差异至少达到临界差值 (CD) 时,其性能具有显著差异:

其中,临界值 qα 基于标准化范围统计量除以 \sqrt{2} (见表5(a))。

当所有分类器均与一个控制分类器比较时,可以使用控制多重假设检验中全家族错误率(family-wise error rate,FWER)的常规方法(例如 Bonferroni 校正)替代 Nemenyi 检验。尽管这些方法通常较保守,功效较低,但在此特定情况下,其功效高于 Nemenyi 检验,因为后者需要调整临界值以适应 k(k−1)/2次比较,而与控制分类器比较仅需进行 k−1 次比较。

比较统计量公式

使用这些方法比较第 i和 j 个分类器的检验统计量为:

其中,z 值用于从标准正态分布表中查找对应概率,然后与适当的 α值比较。不同检验方法通过调整 α值来补偿多重比较带来的问题。

Bonferroni-Dunn 检验

Bonferroni-Dunn 检验 (Dunn, 1961) 通过将 α 除以比较次数 (k−1) 来控制全家族错误率。另一种等效计算方式是使用与 Nemenyi 检验相同的公式计算临界差值 (CD),但使用调整后的临界值 α/(k−1)(参见表 5(b))。比较 Nemenyi 和 Dunn 检验的表格可知,当所有分类器仅与一个控制分类器比较而非两两比较时,事后检验的功效大幅提升。因此,当仅测试新方法是否优于现有方法时,不应进行成对比较。

逐步校正方法

与单步 Bonferroni-Dunn 方法形成对比,逐步(step-up 和 step-down)方法按显著性顺序依次检验假设。将排序后的 p值记为 p1,p2,...,pk−1,其中 p1≤p2≤...≤pk−1。以下为两种常见方法:

  1. Holm 的逐步下降法 (step-down procedure)

    Holm 方法 (1979) 从最显著的 p值开始。如果 p1<α/(k−1),则对应假设被拒绝,继续比较 p2 与 α/(k−2)。如果第二个假设也被拒绝,则继续比较下一个,依此类推。一旦某个原假设未被拒绝,其后的所有假设均保留。

  2. Hochberg 的逐步上升法 (step-up procedure)

    Hochberg 方法 (1988) 采用相反方向,从最大的 p 值开始比较:将最大 p 值与 α比较,次大值与 α/2比较,依此类推,直到遇到可以拒绝的假设为止。随后所有较小 p 值对应的假设均被拒绝。

这两种逐步方法相比单步方法,往往能够更灵活地控制全家族错误率,同时提升功效。

Hommel 方法计算复杂且难以理解。首先,需要找到满足以下条件的最大 j 值:对于所有 k=1,...,j,有:

如果没有这样的 j 存在,则可以拒绝所有假设;否则,拒绝所有满足 pi≤α/j的假设。


Holm 方法与其他方法的比较

  • Holm 方法的功效高于 Bonferroni-Dunn 方法,且对假设无额外要求。
  • Bonferroni-Dunn 方法的优势在于其描述和可视化较简单,因为它对所有比较使用相同的临界差值(CD)。
  • Hochberg 和 Hommel 方法拒绝的假设比 Holm 方法更多,但它们基于尚在研究中的 Simes 猜想,在某些情况下可能超过预定的全家族错误率。
  • 实践中,这些增强方法之间的差异很小(Holland, 1991),因此 Hommel 方法相比简单的 Holm 方法并无明显优势。

更广泛的应用场景

上述方法不仅适用于 Friedman 检验的事后检验,还可用于控制多种类型假设的全家族错误率。此外,还有控制虚假发现率(False Discovery Rate, FDR)的方法。然而,FDR 方法需要研究者设定可接受的虚假发现率,因而不太适合评估机器学习算法。

显著性但未检测到差异的情况

有时,Friedman 检验报告出显著差异,但事后检验无法检测到。这是由于事后检验功效较低导致的。在这种情况下,唯一的结论是某些算法确实存在差异。在作者的实验中,此类情况仅在千分之一的案例中发生。


数据示例:四种算法的比较

表 6 比较了四种算法:

  1. C4.5(固定参数 m=0,置信区间 cf=0.25)
  2. C4.5(通过 5 折交叉验证拟合参数 m)
  3. C4.5(通过 5 折交叉验证拟合参数cf)
  4. C4.5(同时拟合 m 和 cf)

参数 m 取值为 0,1,2,3,5,10,15,20,50,参数 cf取值为 0,0.1,0.25,0.5。

平均排名显示:C4.5+m 和 C4.5+m+cf 排名第二(平均排名 2.000 和 1.964),C4.5 和 C4.5+cf 排名第三(3.143 和 2.893)。

Friedman 检验公式计算:

对于四种算法和14个数据集,F_F 遵循 F 分布,自由度为 4−1=3和 (4−1)×(14−1)=39。当显著性水平 α=0.05时,临界值 F(3,39)=2.85,因此我们拒绝原假设。


进一步的分析取决于研究目的:

  1. 没有特定算法被优先研究时

    使用 Nemenyi 检验进行两两比较。临界值(表 5(a))为 2.569,对应的临界差值(CD)计算为:

    CD=2.5694⋅56⋅14=1.25

    因为最佳和最差算法之间的差异已经小于 CD,因此事后检验未能检测到算法之间的显著差异。

    • 当 p=0.10 时,CD 为: CD=2.2914⋅56⋅14=1.12在此条件下,可以识别两个算法组:
      • 纯 C4.5 的性能显著低于 C4.5+m 和 C4.5+m+cf。
      • 无法判断 C4.5+cf 属于哪个组。
        统计上无法同时将 C4.5+cf 归为两个不同的群组,因此正确的结论是:实验数据不足以对 C4.5+cf 的归属作出判断。
  2. 假设通过参数调优提升 C4.5 性能

    使用 Bonferroni-Dunn 检验计算 CD。在表 5(b) 中,四种分类器的临界值 q0.05 为 2.394,对应的 CD 为:

    CD=2.3944⋅56⋅14=1.16

    • C4.5+m+cf 的性能显著优于 C4.5: 3.143−1.964=1.179>1.16
    • C4.5+cf 无显著提升: 3.143−2.893=0.250<1.16
    • C4.5+m 接近临界差值: 3.143−2.000=1.143≈1.16

    结论:调优参数 m 有助于提升性能,而调优 cf未检测到显著提升。

  3. 其他检验

    需要计算并排序对应的统计量和 p 值。标准误差(SE)计算为:

    SE=4⋅56⋅14=0.488

Holm 程序首先拒绝了第一个假设,然后是第二个假设,因为它们对应的 p 值小于调整后的显著性水平 α。第三个假设无法被拒绝;如果还有更多假设,也必须保留它们。

Hochberg 程序从最小的假设开始检查。无法拒绝最后一个假设时,它检查倒数第二个假设,拒绝它,并同时拒绝所有具有更小 p 值的假设(包括顶部的那个假设)。

最终,Hommel 程序发现 j=3在 k=2 时不满足条件。j 的最大值为 2,因此可以拒绝前两个假设,因为它们的 p 值低于 α/2。

所有逐步下降和逐步上升程序都发现 C4.5+cf+m 和 C4.5+m 与 C4.5 显著不同,而 Bonferroni-Dunn 检验发现 C4.5 和 C4.5+m 太相似。


3.2.3 考虑多次实验重复

在示例中,我们使用了通过多次训练/测试重复测量并平均的 AUC 值。例如,表 6 中的每个单元格表示通过五折交叉验证计算的平均值。

是否可以考虑方差,甚至每次交叉验证的单独结果?

ANOVA 和 Friedman 检验的某些变体可以在每个单元包含多个观测值的情况下进行分析,前提是观测值相互独立(Zar, 1998)。但在此情况下不成立,因为多个随机样本的训练数据存在重叠。我们尚未发现能够考虑这种情况的统计检验方法。

3.2.4 结果的图形化展示

在比较多个分类器时,后续检验的结果可以通过简单的图表直观呈现。图 1 展示了表 6 数据分析的结果。图表中的顶线是用于绘制方法平均排名的轴。该轴方向被调整为排名最低(最佳)在右侧,因为我们倾向于认为右侧的方法表现更好。

当比较所有算法时,图中会用线连接那些差异不显著的算法组(图 1(a))。此外,还在图表上方标出了显著性差异的临界值。

如果使用 Bonferroni-Dunn 检验将方法与对照组进行比较,可以在图中标出对照算法平均排名左侧和右侧的一个临界差异范围(图 1(b))。任何排名超出该范围的算法与对照组存在显著差异。对于其他后续检验的类似图表,需要为每个分类器绘制不同的调整临界区间,并指明所用的检验方法及相应的比较顺序,这可能会使图表变得难以理解。

作为另一个示例,图 2 图形化展示了对特征评分方法的比较,用于分析 Mladenic 和 Grobelnik (1999) 在 Yahoo 层次结构中五个领域的关键词预测问题。分析结果表明,信息增益 显著劣于证据权重交叉熵 Txt赔率比 ,而后者三者的性能似乎相当。数据不足以得出结论是否互信息 Txt 的表现与信息增益词频 相同,类似地,也无法确定词频 是否等同于互信息 Txt或优于它的三种方法。


学习了。。。

相关推荐
霍格沃兹测试开发学社测试人社区8 分钟前
OpenAI Chatgpt 大语言模型
软件测试·人工智能·测试开发·语言模型·chatgpt
闰土_RUNTU12 分钟前
Pytorch分布式训练print()使用技巧
人工智能·pytorch·python·分布式训练·训练技巧
工业甲酰苯胺13 分钟前
C语言之输入输出
c语言·c++·算法
m0_7482347137 分钟前
【大模型】Ollama+open-webuiAnything LLM部署本地大模型构建RAG个人知识库教程(Mac)
人工智能·macos
努力d小白39 分钟前
leetcode98.验证二叉搜索树
算法
deephub41 分钟前
ORCA:基于持续批处理的LLM推理性能优化技术详解
人工智能·深度学习·性能优化·llm
YueTann42 分钟前
Leetcode SQL 刷题与答案-基础篇
sql·算法·leetcode
roman_日积跬步-终至千里1 小时前
【人工智能基础06】人工神经网络(练习题):神经网络的计算、激活函数的选择与神经网络的退化
人工智能·深度学习·神经网络
一勺汤1 小时前
YOLO11改进-模块-引入多尺度差异融合模块MDFM
人工智能·深度学习·yolo·目标检测·模块·改进·yolov11
归寻太乙1 小时前
算法基础Day7(动态规划)
算法·动态规划