论文阅读: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或优于它的三种方法。


学习了。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488281.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数字信号处理】期末综合实验,离散时间信号与系统的时域分析,离散信号 Z 变换,IIR 滤波器的设计与信号滤波,用窗函数法设计 FIR 数字滤波器

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…

人工智能导论学习笔记

目录 一、概要 二、人工智能基础知识 智能 人工智能 人工智能三要素 人工智能发展历程 人工智能的三次浪潮 人工智能行业发展现状 人工智能技术水平现状 人工智能技术层级 人工智能应用开发周期 机器学习的流程 一、概要 《人工智能导论(通识版)》张大斌 田恒义 许…

ZUC256 Go Go Go!!!

文章目录 背景运行效果代码 背景 因业务需要使用ZUC算法&#xff0c;GitHub上又没有对ZUC256相对应的Go语言的实现。 吃水不忘挖井人&#xff0c;在这里感谢GmSSL及BouncyCastle两个强大的密码学库&#xff01; 本ZUC256的编写&#xff0c;参考了这两个库及中科院软件院发布的…

JAVA |日常开发中连接Sqlite数据库详解

JAVA &#xff5c;日常开发中连接Sqlite数据库详解 前言一、SQLite 数据库概述1.1 定义与特点1.2 适用场景 二、Java 连接 SQLite 数据库的准备工作2.1 添加 SQLite JDBC 驱动依赖2.2 了解 JDBC 基础概念 三、建立数据库连接3.1 代码示例3.2 步骤解析 四、执行 SQL 语句4.1 创建…

Spring Cloud Alibaba:一站式微服务解决方案

一、简介 Spring Cloud Alibaba&#xff08;简称SCA&#xff09; 是一个基于 Spring Cloud 构建的开源微服务框架&#xff0c;专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。它集成了阿里巴巴开源的各种分布式服务技术&#xff0c;提供了一系列…

融云分享基于 Rust 的鸿蒙 SDK 开发实践

12 月 5 日&#xff0c;以“同心聚力&#xff0c;共建共享鸿蒙新生态”为主题的“鸿蒙生态伙伴 SDK 开发者论坛”在京举行。 融云凭借对鸿蒙生态的率先适配和创新贡献&#xff0c;荣获华为鸿蒙生态“HarmonyOS NEXT SDK 星河奖”。 本次论坛邀请了多位行业领导者参与&#xff…

C语言 位运算符 + 应用

常用的位运算符 按位与 快速判断整数的奇偶性 奇数的二进制表示的最低位为1&#xff0c;偶数的二进制表示的最低位为0。 int num 9; if (num & 1) {// num 是奇数 } else {// num 是偶数 }按位异或 交换两个变量的值 int a 5; int b 7; a a ^ b; b a ^ b; a a ^ …

JavaWeb学习(4)(四大域、HttpSession原理(面试)、SessionAPI、Session实现验证码功能)

目录 一、web四大域。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;RequestScope。(请求域) &#xff08;3&#xff09;SessionScope。(会话域) &#xff08;4&#xff09;ApplicationScope。(应用域) &#xff08;5&#xff09;PageScope。(页面域) 二、Ht…

C++ 菱形继承 +虚继承

菱形继承 两个派生类继承同一个基类而又有某个类同时继承者两个派生类&#xff0c;这种继承被称为菱形继承&#xff0c;或者钻石型继承。 菱形继承存在的问题 1&#xff09;羊继承了动物的数据和函数&#xff0c;鸵同样继承了动物的数据和函数&#xff0c;当草泥马调用函数或者…

LCR 103. 零钱兑换 (从dfs->记忆化搜索->动态规划)

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1。 你可以认为每种硬币的数量是无限的。 示例 1&#xff1a; 输入&#xff1a;coins [1, 2, 5], amount …

密码学——密码学基础、散列函数与数字签名

1.密码学概述 是信息安全的基础和核心&#xff0c;是防范各种安全威胁的重要手段&#xff0c;信息安全的许多相关知识都与密码学相关。 密码学发展 密码学是一门古老而又年轻的学科 &#xff0c;几千年以前就存在&#xff0c;至今仍在发展演进。地位非常重要甚至起决定性作用…

JS API日期对象

目标&#xff1a;掌握日期对象&#xff0c;可以让网页显示日期 日期对象&#xff1a;用来表示时间的对象 作用&#xff1a;可以得到当前系统时间 实例化 目标&#xff1a;能够实现实例化日期对象 在代码中发现了new关键字时&#xff0c;一般将这个操作称为实例化 创建一个时…

CTFshow-命令执行(Web29-40)

CTFshow-命令执行(Web29-40) CTFWeb-命令执行漏洞过滤的绕过姿势_绕过空格过滤-CSDN博客 总结rce&#xff08;远程代码执行各种sao姿势&#xff09;绕过bypass_远程命令执行绕过-CSDN博客 对比两者的源代码&#xff0c;我们发现&#xff0c;cat指令把flag.php的内容导出后依…

Qt Pro 常用配置

Part1: Summary Qt 开发中 Pro 文件的内容很多&#xff0c;需要不断的去学习和使用&#xff0c;现系统性的整理一下。以备录&#xff1b; 1.创建pro文件 1.1 步骤&#xff1a; Qt Creator--->New Project--->应用程序--->Qt Widgets Application--->名称为&…

移动端自动化Auto.js入门及案例实操

前提&#xff1a; Appium 和 Airtest 编写的自动化脚本都依赖于 PC 端运行&#xff0c;没有办法直接运行在移动端 Auto.js是什么&#xff1f; 1.是 Android 平台上的一款自动化工具&#xff0c;它通过编写 JavaScript 脚本&#xff0c;对 App 进行自动化操作 2.只支持安卓&a…

【SH】微信小程序调用EasyDL零门槛AI开发平台的图像分类研发笔记

文章目录 微信小程序字符串字符串模板字符串拼接 上传图片编写JS代码编写wxml代码编写wxss代码 GET请求测试编写测试代码域名不合法问题 GET和POST请求测试编写JS代码编写wxml代码编写wxss代码 效果展示 微信小程序字符串 字符串模板 这是ES6引入的特性&#xff0c;允许你通过…

【深度学习入门】深度学习介绍

1.1 深度学习介绍 学习目标 目标 知道深度学习与机器学习的区别了解神经网络的结构组成知道深度学习效果特点 应用 无 1.1.1 区别 1.1.1.1 特征提取方面 机器学习的特征工程步骤是要靠手动完成的&#xff0c;而且需要大量领域专业知识深度学习通常由多个层组成&#xff0c…

SparkSQL与Hive的整合

文章目录 SparkSQL与Hive的整合1.1. Spark On Hive1.1.1. Hive的准备工作1.1.2. Spark的准备工作1.1.3. Spark代码开发1.1.4. Spark On Hive案例 1.2. Hive On Spark1.3. SparkSQL命令行1.4. SparkSQL分布式查询引擎1.4.1. 开启ThriftServer服务1.4.2. beeline连接ThriftServer…

梳理你的思路(从OOP到架构设计)_基本OOP知识03

目录 1、<基类/子类 >结构的接口(卡榫函数) 1&#xff09;卡榫(Hook) 2&#xff09;卡榫函数的Java实现 2、IoC机制与基於 Default 軟硬整合觀點 函数 1&#xff09;卡榫函数实现IoC机制 2&#xff09;默认(Default)行为 1、<基类/子类 >结构的接口(卡榫函数…

软件测试--录制与回放脚本

准备工作 安装phpstudy 配置两个内容 放demo44文件夹 在浏览器输入http://localhost/demo44/index.html&#xff0c;出现如图所示的网站 输入用户名和密码 步骤一&#xff1a;打开Virtual User Generator&#xff0c;点击新建&#xff0c;点击new 步骤二&#xff1a;点击如下…