交叉验证或自举以评估分类性能?


24

在特定数据集上评估分类器的性能并将其与其他分类器进行比较的最合适的抽样方法是什么?交叉验证似乎是标准做法,但是我已经读过诸如.632 bootstrap之类的方法是更好的选择。

作为后续措施:性能指标的选择是否会影响答案(如果我使用AUC而不是准确性)?

我的最终目标是能够自信地说一种机器学习方法优于特定的数据集。


1
Bootstrap(可替换)可用于您的训练数据集,以代替(重复)k倍交叉验证。另请参阅:交叉验证和自举以估计预测误差之间的差异了解用于验证和模型选择的自举
chl 2013年

Answers:


42

与通常使用交叉验证和引导外方法的一个重要区别是,大多数人仅应用交叉验证一次(即,每种情况仅测试一次),而大量进行引导外验证重复/迭代次数。在这种情况下,由于模型的不稳定性,交叉验证的方差更大。但是,可以通过使用例如重复/重复的倍交叉验证来避免这种情况。如果这样做,至少对于我一直在使用的光谱数据集而言,两种重采样方案的总误差在实践中似乎是相同的。ķ

不鼓励进行留一法交叉验证,因为不可能减少模型的不稳定性类型方差,并且存在一些分类器和问题,表现出巨大的悲观偏见。

只要混入的重采样误差不会过分乐观,.632引导程序就可以完成合理的工作。(例如,对于我使用的数据而言,具有很多变量的非常宽的矩阵,由于模型易于严重过拟合,因此效果不佳)。这也意味着我将避免使用.632引导程序来比较复杂度不同的模型。使用.632+引导程序,我没有经验:如果发生过度拟合并被正确检测到,它将等于原始的引导程序外估计,因此我坚持使用普通oob或迭代/重复交叉验证数据。

文献:

  • Kohavi,R .:关于准确性验证和模型选择的交叉验证和引导的研究人工智能论文集,第14届国际联合会议,1995年8月20日至25日,蒙特利尔,加拿大魁北克,1995年,1377-1145年。
    (经典)

Dougherty和Braga-Neto有许多有关该主题的出版物,例如

指标选择:

我的最终目标是能够自信地说一种机器学习方法优于特定的数据集。

  • 使用配对测试进行评估。为了比较比例,请看McNemar的检验。

  • 答案将受到度量标准选择的影响。由于回归类型的误差度量不具有使用阈值削减决策的“强化”步骤,因此它们的方差通常小于分类对应项。像准确性这样的指标基本上是成比例的,将需要大量的测试用例才能确定一个分类器相对于另一个分类器的优越性。

Fleiss:“比率和比例的统计方法”提供了示例(和表格),用于不成对地比较比例。为了让您对“大样本量”的含义有个印象,请看一下我对另一个问题的回答中的图像。像McNemar这样的配对测试需要较少的测试用例,但IIRC仍处于最佳情况下,是未配对测试所需样本量的一半(?)。

  • 为了表征分类器的性能(强化),通常需要至少两个值的工作曲线,例如ROC(敏感性与特异性)等。
    我很少使用整体精度或AUC,因为我的应用程序通常会有一些限制,例如,灵敏度比特异性更重要,或者应满足这些度量的某些限制。如果您选择“单个数字”总和特征,请确保您要查看的模型的工作点实际上在合理的范围内。

  • 有关准确性和其他性能度量标准,这些度量标准根据参考标签总结了多个类的性能,请确保考虑到应用程序中将遇到的类的相对频率-不一定与您在应用程序中所遇到的相同培训或测试数据。

  • Provost,F。等。:1998年第十五届国际机器学习会议论文集中反对归纳算法比较的精度估计的案例


编辑:比较多个分类器

我已经考虑了一段时间,但是还没有找到解决方案(我也没有遇到任何有解决方案的人)。

到目前为止,这是我得到的:

目前,我决定“优化是万恶之源”,而是采取一种截然不同的方法:
我会根据有关当前问题的专业知识来尽可能地做出决定。实际上,这可以使范围缩小很多,因此我经常可以避免模型比较。当我必须比较模型时,我会尽量保持开放和清晰,提醒人们性能估计的不确定性,尤其是多个模型比较仍然是AFAIK尚未解决的问题。


编辑2:配对测试

ñ1个2ñ2-ñ测试的含义只是指这样的事实,因为所有模型都使用完全相同的测试用例进行测试,因此您可以一方面将用例分为“简单”和“困难”用例,为此所有模型都得出正确的(或错误)的预测。它们无助于区分模型。另一方面,有些“有趣”的案例可以通过某些模型正确预测,而不能通过其他模型正确预测。仅需要考虑这些“有趣”的案例来判断优越性,“简单”或“困难”的案例都不能提供帮助。(这就是我对麦克尼玛测试背后的想法的理解)。

ññ


感谢您的详细回答!如果您能详细阐述您的观点,我将不胜感激:“ 使用配对测试进行评估。要比较比例,请看一下麦克尼玛的测试。 ”我应该稍微改一下我的问题:我想比较几台机器一次学习方法,不一定只是成对学习。我现在还不清楚配对测试如何完成这项工作。
kelvin_11 2013年

3
(+6)不错的回应。
chl

@cbeleites我爱你的评论。对于多重模型比较的重要性-方差分析(ANOVA)方法如何?例如 Kruskal–Wallis
巧遇

1
@Serendipity:我对Kruskal-Wallis真的不了解,无法在这里给您答案。但我怀疑类似ANOVA的方法不是这里所需要的,因为(1)它不使用数据的成对性质,并且(2)与多重比较相比,它获得了功效,因为零假设只是“所有模型”表现均等”-如果被拒绝,您仍然不知道哪种算法的表现有所不同。因此,它只能用于强调负面结果(选择哪种算法都没有关系)。我怀疑在一个很大的区域中,ANOVA不会告诉您所有模型...
cbeleites支持Monica

...相等,但是您没有足够的信息来进行识别更好的模型所需的多次比较。
cbeleites支持Monica

6

仅由于原始研究使用了不连续的不正确评分规则(正确分类的比例),才需要对引导程序进行修改(.632,.632 +)。对于其他准确性得分,普通的乐观引导程序通常可以正常工作。有关更多信息,请参见http://biostat.mc.vanderbilt.edu/RmS#Studies_of_Methods_Used_in_the_T

不正确的评分规则会误导您选择功能及其权重。换句话说,所有可能出错的事物都会出错。


4

摘自Khun的“应用预测建模”。约翰逊。第78章

“没有一种重采样方法总是比另一种方法更好;应该在考虑多个因素的情况下进行选择。如果样本量较小,出于多种原因,我们建议使用重复的10倍交叉验证;偏倚和方差性质良好,并且给出了如果目标是在模型之间进行选择(而不是获得最佳性能指标),则可以采用一种自举程序,因为自举程序的差异非常小,因此非常有用。对于大样本量,重采样方法之间的差异变得不太明显,并且计算效率会提高。” p。78

另外,考虑到两个相似结果的选择,通常更可解释的模型是优选的。作为示例(来自同一文本),使用10倍CV,SVM分类器的准确度估计值为75%,重采样结果介于66%和82%之间。在Logistic回归分类器上使用了相同的参数,准确性为74.9%,重采样范围相同。最好选择更简单的逻辑回归模型,因为它更易于解释结果。


4
请注意,您的方差可以减少运行大量的引导/交叉验证迭代/重复的是来自替代模型的不稳定变化的只是一部分。您可以通过交叉验证来衡量这是否对总方差有重大贡献,因为它在每次运行中仅对每个样本进行一次测试,因此在比较完整交叉验证的平均值时,不会出现由于样本数量有限而引起的方差。对于“硬”分类,由于二项分布的样本量有限,因此可以计算方差。
cbeleites支持Monica

@cbeleites:您能否解释一下“在每次运行中对每个样本进行一次精确的测试,因此在有限的交叉验证运行的平均值比较中不会出现因样本量有限而引起的差异”,这是什么意思。(参考文献都是精品呢!)(+1清楚)
usεr11852说恢复单胞菌

@ usrr11852:每个案例在每次交叉验证运行中都进行了一次准确的测试。想象一个n_sample xr CV运行结果表。如果我们有稳定的预测,则相同情况下的所有r个预测都相同。即,行之间没有方差。但是不同的情况可能会得到不同的预测(除非我们具有例如100%的准确性):我们在各列中存在差异。现在,迭代/重复交叉估值的标准评估是比较列平均值。对于稳定模型,即使我们沿列(即在个案之间)确实存在差异,它们也完全相同。
cbeleites支持Monica's

(如果模型/预测不稳定,我们会通过不同的替代模型获得不同的预测,并且沿行也会看到方差。加上沿列的一些附加变化,因为k折CV中的每一列都涵盖了k种不同的替代模型。 )因此,为了测量模型/预测(不稳定性),直接寻找沿行的方差(即同一情况下不同替代模型的预测的方差)可能更为直接。
cbeleites支持Monica

1
@cbeleites:非常感谢您的澄清。现在,我很欣赏您提出的要点。
usεr11852恢复单胞菌说,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.