交叉验证中的均值(分数)vs分数(串联)


15

TLDR:

我的数据集很小(120个)样本。在进行10倍交叉验证时,我应该:

  1. 收集每个测试折叠的输出,将它们连接成一个向量,然后在这个完整的预测向量(120个样本)上计算误差?

  2. 或者我应该代替计算上的输出我得到的错误的一个折(每个折痕12个样本),然后让我最终误差估计为平均10点的误差估计?

是否有任何科学论文争论这些技术之间的差异?


背景:多标签分类中与宏观/微观得分的潜在关系:

我认为这个问题可能与microMacro之间的差异有关经常在多标签分类任务(例如说5个标签)中使用的平均值平均值。

在多标签设置时,微平均得分是通过使计算的聚集对120个样本的所有5个分类器预测真阳性,假阳性,真阴性,假阴性权变表,。然后,该列联表用于计算微观精度,微观召回率和微观f测度。因此,当我们有120个样本和5个分类器时,将根据600个预测(120个样本* 5个标签)计算出微观指标。

使用Macro变体时,每个标签独立计算度量(精度,召回率等),最后将这些度量平均。

微观估算与宏观估算之间的差异背后的思想可能会扩展到二进制分类问题中以K倍设置可以完成的工作。对于10倍,我们可以对10个值进行平均宏观测量),也可以将10个实验连接起来并计算微观措施。

背景-扩展示例:

以下示例说明了该问题。假设我们有12个测试样本,并且有10折:

  • 折1TP = 4,FP = 0,TN = 8 精度 = 1.0
  • 折2TP = 4,FP = 0,TN = 8 精度 = 1.0
  • 折3TP = 4,FP = 0,TN = 8 精度 = 1.0
  • 折4TP = 0,FP = 12, 精度 = 0
  • 折5 .. 折10:都具有相同的TP = 0,FP = 12和Precision = 0

我在其中使用以下表示法:

TP =正误数, FP =错误误数, TN =正负数

结果是:

  • 10折的平均精度= 3/10 = 0.3
  • 10折预测的串联精度= TP / TP + FP = 12/12 + 84 = 0.125

请注意,值0.3和0.125有很大差异


简历并不是预测未来业绩的好方法。方差太小。最好使用引导程序来验证模型。
user765195 2012年

2
@ user765195:您能用一些引文来备份您的主张吗?
Zach 2012年

我一直在搜索,但是没有找到有关聚合CV方法的任何文献。由于方差较小,这似乎是一种更合适的方法来计算量度。
user13420'8

1
@Zach,在Harrell的书中有一些讨论:tinyurl.com/92fsmuv(请参阅第93页的最后一段和第94页的第一段。)我将尝试记住其他更明确的参考。
user765195 2012年

1
k

Answers:


3

所描述的区别是恕我直言,是伪造的。

仅当真正肯定的案例(即参考方法说它是肯定的案例)的分布在折数(如示例中)相关测试案例的数量(绩效度量的分母)上非常不相等时,您才会观察到它我们正在谈论的是,在平均倍数平均值时,没有考虑真正的正数)。

如果您用加权前三折平均值412=13


编辑:原始问题还询问有关迭代/重复验证的问题:

ķ

  • 如果通过交换一些训练样本来干扰训练数据,那么预测会发生多少变化?
  • 即,对于同一测试样本,不同“替代”模型的预测有多少变化?

您在索取科学论文

低估方差 最终,无论您进行了多少次自举或交叉验证迭代,您的数据集都有有限的(n = 120)样本大小。

  • 在重新采样(交叉验证和引导超出范围)验证结果中,您至少有2个方差源:

    • 由于(测试)样本数量有限而导致的方差
    • 替代模型预测的不稳定性导致的方差
  • 如果您的模型稳定,则

    • ķ
    • 但是,由于有限数量的测试样本,性能估计值仍然存在差异。
    • 如果您的数据结构是“简单的”(即,每个统计独立的案例都有一个单一的测量向量),则可以假定测试结果是伯努利过程(投币)的结果,并计算出有限检验集的方差。
  • nķ


另外,我正在使用四个分类器进行多标签分类。因此,我想研究4个任务中的微观和宏观F度量。我认为在这种情况下甚至需要“组合”交叉验证?另外,我不确定启动外引导程序是否与我上面提到的“组合” CV方法相同。stats.stackexchange.com/questions/4868/…上
user13420 2012年

@ user13420:我也不知道您使用组合CV的意思是什么...这是我写下自举和交叉验证对我而言
cbeleites支持莫妮卡

@ user13420:在不同领域,术语有很大不同。您可以通过信息更新什么是微观和宏观F度量吗?但是,交叉验证是一种非常通用的技术:这是一种用于计算模型测试结果的方案。您可以计算需要将每种情况的参考值和每种情况的预测值作为输入的任何性能指标。
cbeleites支持Monica 2012年

综合CV意味着您将收集每个保留的预测并计算所有10个保留之后的度量。因此,如果我测量精度,召回分类任务,则它将具有单个精度,召回率,而不是10个值和一个平均值(在通常的CV中是这种情况)
user13420 '20

2
谢谢cbeleites-我添加了这些说明,因为我发现原始问题的措辞有些混乱。我希望我的编辑做得更好-我试图更好地强调这个难题-但请让我知道。综上所述,当您提到发现伪造的差异时,我想指出的是,当遵循方法12时,@ user13420在其OP的底部会得到两个实质上不同的结果。我发现自己正面临着这种困境。我相信第二种方法虽然更普遍,但是最好还是采用第二种方法。
2013年

1

你应该做分数(串联)。在这个领域中,一个普遍的误解是平均分(分数)是最好的方法。可能会给您的估计带来更多偏差,尤其是在您遇到的情况下,对稀有类而言。这是支持此的论文:

http://www.kdd.org/exploration_files/v12-1-p49-forman-sigkdd.pdf

在本文中,他们使用“ Favg”代替您的“平均值(分数)”,并使用“ Ftp,fp”代替您的“分数(并置)”

玩具示例:

想象一下,您有10倍交叉验证,并且一个类出现10次,并且恰好被分配了一次,因此每遍出现一次。同样,该类总是可以正确预测的,但是数据中只有一个假阳性。包含假阳性的测试折叠将具有50%的准确性,而所有其他折叠将具有100%的准确性。因此平均(得分)= 95%。另一方面,得分(串联)为10/11,约为91%。

如果我们假设数据可以很好地表示真实总体,并且10个交叉验证分类器很好地代表了最终分类器,那么真实世界的准确度将为91%,而平均分(平均值)估计为95% 。

在实践中,您将不想做出这些假设。取而代之的是,您可以使用分布统计信息来估计置信度,方法是对数据进行随机排列并多次重新计算得分(串联),以及进行自举。


这是一篇很棒的论文!我认为用原始问题(本文未使用)的语言得出的结果是,在计算F分数时,请使用“微平均”方法。具体来说,将所有倍数的TP,TN,FP,FN相加,得到一个混淆矩阵,然后计算F得分(或其他所需指标)。
travelingbones
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.