参数调整:5 x 2-fold CV 统计测试

比较机器学习算法的统计显著性检验

比较机器学习方法并选择最终模型是应用机器学习中的常见操作。

模型通常使用重采样方法进行评估,比如k-折叠交叉验证,从中直接计算和比较平均技能分数。虽然简单,但这种方法可能会产生误导,因为很难知道平均技能分数之间的差异是真实的还是统计上的侥幸。

统计显著性测试旨在解决这个问题,并量化技能分数样本被观察到的可能性,假设它们来自相同的分布。如果这一假设或无效假设被拒绝,则表明技能得分的差异具有统计学意义。

尽管并非万无一失,但统计假设检验可以提高您在模型选择过程中对解释和结果展示的信心。

在本教程中,您将发现选择统计假设检验来比较机器学习模型的重要性和挑战。

完成本教程后,您将了解:

统计假设检验可以帮助比较机器学习模型和选择最终模型。

单纯应用统计假设检验可能会导致误导性结果。

正确使用统计检验具有挑战性,对于使用McNemar检验或5×2交叉验证与改进的配对学生t检验,有一些共识。

2018年10月更新:添加了使用McNemar测试示例的链接(McNemar’s test.)。

教程概述

本教程分为5个部分;他们是:

  1. 模型选择问题
  2. 统计假设检验
  3. 选择假设检验的问题
  4. 一些调查结果摘要
  5. 建议

模型选择问题

应用机器学习的很大一部分是模型选择。

我们可以用最简单的形式来描述:

考虑到对一个数据集上的两种机器学习方法的评估,您会选择哪种模型?

你用最好的技巧选择模型。

也就是说,在对看不见的数据进行预测时,其估计技能最好的模型。这可能是分类和回归问题的最大精度或最小误差。

选择具有最佳技能的模型所面临的挑战是确定您对每个模型的估计技能的信任程度。更一般地说:

两种机器学习模型之间的技能差异是真的,还是统计上的偶然性造成的?

我们可以使用统计假设检验来解决这个问题。

统计假设检验

通常,用于比较样本的统计假设检验量化了在假设样本具有相同分布的情况下观察两个数据样本的可能性。

统计检验的假设称为零假设,我们可以计算统计度量并对其进行解释,以决定是否接受或拒绝零假设。

在根据估计技能选择模型的情况下,我们有兴趣知道这两个模型之间是否存在真正的或统计上显著的差异。

如果测试结果表明没有足够的证据拒绝无效假设,那么在模型技能方面观察到的任何差异都可能是由于统计上的偶然性。

如果测试结果表明有足够的证据否定无效假设,那么观察到的模型技能差异很可能是由于模型的差异。

测试结果是概率的,也就是说,可以正确地解释结果,并且结果是错误的,存在I型或II型错误。简单地说,是假阳性或假阴性的发现。

通过统计显著性检验来比较机器学习模型会带来一些期望,这些期望反过来会影响可使用的统计检验的类型;例如:

  • 技能评估(Skill Estimate)。必须选择模型技能的具体衡量标准。这可能是分类精度(比例)或平均绝对误差(汇总统计),这将限制可使用的测试类型。
  • 反复估计(Repeated Estimates)。为了计算统计数据,需要技能分数样本。在相同或不同数据上重复训练和测试给定模型将影响可使用的测试类型。
  • 估计数的分布(Distribution of Estimates)。技能得分估计的样本将有一个分布,可能是高斯分布,也可能不是。这将决定是否可以使用参数测试或非参数测试。
  • 中心趋势(Central Tendency)。根据技能得分的分布情况,通常会使用汇总统计数据(如平均值或中位数)来描述和比较模型技能。测试可能会也可能不会直接考虑到这一点。

统计检验的结果通常是检验统计量和p值,这两种结果都可以解释并用于结果的呈现,以便量化模型之间差异的置信度或显著性水平。与不使用统计假设检验相比,这允许在模型选择中做出更有力的声明。

考虑到使用统计假设测试作为模型选择的一部分似乎是可取的,您如何选择适合您的特定用例的测试?

选择假设检验的问题

让我们来看一个用于评估和比较平衡二进制分类问题的分类器的常见示例。

通常的做法是使用分类精度评估分类方法,使用10倍交叉验证评估每个模型,假设10个模型技能估计样本的高斯分布,并使用样本的平均值作为模型技能的总结。

我们可以要求通过10倍交叉验证,在完全相同的数据集分割上对使用此过程评估的每个分类器进行评估。这将给出两个分类器之间匹配的成对度量的样本,因为每个分类器都是在相同的10个测试集上进行评估的。

然后,我们可以选择并使用配对学生的t检验来检查两个模型之间的平均准确度差异是否具有统计学意义,例如,拒绝假设两个样本具有相同分布的零假设。

事实上,这是一种常用的方法,可以将分类器与使用这种方法发表的数百篇论文进行比较。

问题是,配对学生的t检验的一个关键假设被违反了。

也就是说,每个样本中的观察值不是独立的。作为k-fold交叉验证程序的一部分,将在训练数据集中(k-1)次使用给定的观察值。这意味着估计的技能分数是依赖的,而不是独立的,反过来,测试中t统计量的计算以及对统计量和p值的任何解释都将是错误的。

这一观察需要仔细了解所使用的重采样方法(本例中为k倍交叉验证)和所选假设检验的期望值(本例中为配对学生的t检验)。如果没有这个背景,测试似乎是合适的,结果会被计算和解释,一切看起来都会很好。

不幸的是,在应用机器学习中为模型选择选择一个合适的统计假设检验比最初看起来更具挑战性。幸运的是,越来越多的研究有助于指出幼稚方法的缺陷,并提出纠正和替代方法。

一些调查结果摘要

在本节中,让我们看一看在机器学习中选择适当的统计显著性测试进行模型选择的一些研究。

使用McNemar试验或5×2交叉验证

关于这一主题的开创性工作可能是Thomas Dieterich 1998年发表的题为“比较监督分类学习算法的近似统计测试(Approximate Statistical Tests for Comparing Supervised Classification Learning Algorithms)”的论文。

这是一篇关于这个主题的优秀论文,也是一本推荐读物。它首先介绍了一个很好的框架,用于思考机器学习项目中可能需要进行统计假设测试的点,讨论了与比较分类器机器学习方法相关的统计测试常见违规的预期,最后,通过实证评估方法来确认研究结果。

本文回顾了五种近似统计测试,用于确定一种学习算法在特定学习任务中是否优于另一种。

本文中统计假设检验的选择和实证评估的重点是I型错误或假阳性的校准。也就是说,选择一个测试,在不存在显著差异的情况下,尽量减少出现显著差异的情况。

本文有一些重要的发现。

第一个发现是,绝不应该对通过训练数据集的随机重采样估计的技能结果进行配对学生t检验。

…我们可以自信地得出结论,不应使用重采样t检验。

在随机重采样和k倍交叉验证的情况下(如上所述),违反了配对t检验的假设。然而,在k-折叠交叉验证的情况下,t-检验将是乐观的,导致更高的I型误差,但只有适度的II型误差。这意味着,在避免II型错误比屈服于I型错误更重要的情况下,可以使用这种组合。

10倍交叉验证t检验具有较高的I型错误。然而,它也具有高功率,因此,在II型错误(未能检测到算法之间的实际差异)更为重要的情况下,可以建议使用它。

Dieterich建议在数据量有限且每个算法只能评估一次的情况下使用McNemar的统计假设检验。

McNemar的检验类似于卡方检验,在这种情况下,用于确定算法列联表中观察到的比例差异是否与预期比例显著不同。对于需要几天或几周时间训练的大型深度学习神经网络来说,这是一个有用的发现。

我们的实验让我们推荐[…]McNemar的测试,用于学习算法只能运行一次的情况。

Dieterich还推荐了一种他自己设计的重采样方法,称为5×2交叉验证,包括5次重复的2倍交叉验证。

选择两个折叠,以确保每个观测值仅出现在模型技能的单个估计的训练或测试数据集中。对结果使用配对学生的t检验,并进行更新,以更好地反映有限的自由度,考虑到估计的技能分数之间的依赖性。

我们的实验让我们推荐[…]5 x 2cv t测试,在这种情况下,学习算法的效率足以运行十次

5×2交叉验证的改进

自论文发表以来的20年中,使用麦克内马尔检验或5×2交叉验证已成为主要建议。

尽管如此,为了更好地纠正配对学生的t检验违反了重复k倍交叉验证的独立性假设,我们已经做了进一步的改进。
其中两篇重要论文包括:

克劳德·纳多(Claude Nadeau)和约书亚·本吉奥(Yoshua Bengio)在2003年发表的题为“归纳错误的推理”的论文中提出了进一步的修正。这是一篇密集的论文,不推荐用于心脏病患者。

该分析使我们能够构造两个方差估计,同时考虑到由于选择训练集和选择测试示例而产生的可变性。其中一个建议的估计器看起来类似于cv方法(Dieterich,1998),专门设计用于高估方差以产生保守推断。

Remco Bouckaert和Eibe Frank在2004年发表的题为“评估学习算法比较显著性测试的可复制性”的论文中,从不同的角度出发,认为复制结果的能力比I型或II型错误更重要。

在本文中,我们认为测试的可复制性也很重要。如果测试的结果强烈依赖于用于执行测试的数据的特定随机分区,那么我们就说测试的可复制性很低

令人惊讶的是,他们建议使用100次随机重采样或10×10倍交叉验证,并对配对的Student-t测试进行Nadeau和Bengio校正,以实现良好的可复制性。

Ian Witten和Eibe Frank的书以及他们的开源数据挖掘平台Weka推荐了后一种方法,将Nadeau和Bengio校正称为“校正的重采样t检验”。

为了避免这个问题,人们提出了对标准t检验的各种修改,这些修改都是启发性的,缺乏合理的理论依据。一个在实践中似乎很有效的方法是修正的重抽样t检验。[…]重复交叉验证可以使用相同的修正统计数据,这只是重复坚持的一种特殊情况,其中一次交叉验证的单个测试集不重叠。

-第5章第159页,可信度:评估所学内容,数据挖掘:实用机器学习工具和技术,第三版,2011年。

建议

在应用机器学习的模型选择中,在选择统计显著性检验时,没有什么灵丹妙药。

让我们来看一下在机器学习项目中用来比较分类器的五种方法。

1.独立数据样本

如果你有几乎无限的数据,收集k个单独的训练和测试数据集,为每种方法计算10个真正独立的技能分数。
然后,您可以正确应用配对学生的t检验。这是不太可能的,因为我们经常使用小数据样本。

…假设数据基本上是无限的,因此可以使用几个大小合适的独立数据集。实际上,通常只有一个大小有限的数据集。我们能做些什么?

-第5章第158页,可信度:评估所学内容,数据挖掘:实用机器学习工具和技术,第三版,2011年。

2.接受10倍CV的问题

简单的10倍交叉验证可以与未经修改的配对学生t检验一起使用。

与其他方法相比,它具有良好的重复性和适度的II型误差,但已知具有较高的I型误差。

实验还表明,在解释10倍交叉验证t检验的结果时要谨慎。该测试的I型错误概率较高(高达目标水平的两倍),尽管其严重程度不如重采样t测试。

-比较监督分类学习算法的近似统计测试,1998年。

这是一个选项,但它的建议非常弱。

3.使用McNemar试验或 5×2 CV

McNemar对单次分类准确度结果和5×2倍交叉验证的20年建议,采用改良配对学生t检验(paired Student’s t-test)。

此外,根据Weka开发商的建议,可将Nadeau和Bengio对测试统计数据的进一步修正与5×2倍交叉验证或10×10倍交叉验证一起使用。

使用修改后的t-统计量的一个挑战是,没有现成的实现(例如在SciPy中),需要使用第三方代码以及由此带来的风险。你可能需要自己去实现它。

Gitte Vanwinckelen和Hendrik Blockeel在其2012年题为“关于通过重复交叉验证估计模型精度”的论文中说,所选统计方法的可用性和复杂性是一个重要考虑因素:

虽然这些方法经过精心设计,并在许多方面优于以前的方法,但它们与以前的方法存在相同的风险,即方法越复杂,研究人员错误使用或错误解释结果的风险越高。

我这里有一个使用麦克内马尔测试的例子:

如何计算McNemar的测试来比较两个机器学习分类器

4.使用非参数配对测试

我们可以使用一种非参数测试,它可以做出较少的假设,比如不假设技能分数的分布是高斯分布。

一个例子是Wilcoxon符号秩检验,它是配对学生t检验的非参数版本。与配对t检验相比,该检验的统计效力较小,但在违背t检验的预期时(如独立性),该检验的效力更大。

Janez Demsar在其2006年的论文《多个数据集上分类器的统计比较》中建议使用这种统计假设检验来比较不同数据集的算法。

因此,我们建议使用Wilcoxon检验,除非满足t检验假设,因为我们有许多数据集,或者因为我们有理由相信跨数据集的性能度量是正态分布的。

尽管测试是非参数的,但它仍然假设每个样本内的观察值是独立的(例如iid),使用k-折叠交叉验证将创建依赖样本,并违反此假设。

5.使用估算统计数据

代替统计假设检验,可以计算估计统计数据,例如置信区间。考虑到评估模型所采用的重采样方法,这些模型会遇到类似的问题,即违反独立性假设。

Tom Mitchell在其1997年的书中提出了类似的建议,建议将统计假设检验的结果作为启发性估计,并围绕模型技能的估计寻求置信区间:

总之,没有一个基于有限数据比较学习方法的单一程序能够满足我们想要的所有约束条件。明智的做法是记住,在可用数据有限的情况下,统计模型很少能完全符合测试学习算法的实际约束。然而,它们确实提供了近似的置信区间,这对解释学习方法的实验比较非常有帮助。

-第150页,第5章,评估假设,机器学习,1997年。

bootstrap等统计方法可用于计算可防御的非参数置信区间,该置信区间可用于呈现结果和比较分类器。这是一个简单而有效的方法,你总是可以依靠它,我一般都推荐它。

事实上,置信区间在bootstrap领域的任何主题中都得到了最多的理论研究。

-第321页,引导程序简介,1994年。

扩展

本节列出了一些扩展教程的想法,您可能希望对此进行探索。

找出并列出三篇错误使用未经修改的配对学生t检验来比较和选择机器学习模型的研究论文。

总结Thomas Ditterich在1998年的论文中提出的在机器学习项目中使用统计假设检验的框架。

找到并列出三篇正确使用McNemar测试或5×2交叉验证进行比较的研究论文,并选择机器学习模型。

如果你探索这些扩展,我很想知道。

进一步阅读

如果您想更深入地了解这个主题,本节将提供更多资源。

Papers

Books

Articles

Discussions

总结

在本教程中,您发现了选择统计假设检验来比较机器学习模型的重要性和挑战。

具体来说,你学到了:

  • 统计假设检验可以帮助比较机器学习模型和选择最终模型。
  • 单纯应用统计假设检验可能会导致误导性结果。
  • 正确使用统计检验具有挑战性,对于使用McNemar检验或5×2交叉验证与改进的配对学生t检验,有一些共识。

reference

@online{BibEntry2019Aug,
title = {{Statistical Significance Tests for Comparing Machine Learning Algorithms}},
organization = {Machine Learning Mastery},
year = {2019},
month = {8},
date = {2019-08-08},
urldate = {2022-03-10},
language = {english},
hyphenation = {english},
note = {[Online; accessed 10. Mar. 2022]},
url = {https://machinelearningmastery.com/statistical-significance-tests-for-comparing-machine-learning-algorithms},
abstract = {{Comparing machine learning methods and selecting a final model is a common operation in applied machine learning. Models are commonly […]}}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

或许,这就是梦想吧!

如果对你有用,欢迎打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值