TLDR:
我的数据集非常小(120)个样本。在进行 10 倍交叉验证时,我应该:
收集每个测试折叠的输出,将它们连接成一个向量,然后在这个完整的预测向量(120 个样本)上计算误差?
或者我应该计算每次折叠得到的输出的误差(每折叠 12 个样本),然后将我的最终误差估计值作为 10 倍误差估计值的平均值?
是否有任何科学论文争论这些技术之间的差异?
背景:多标签分类中与宏观/微观分数的潜在关系:
我认为这个问题可能与多标签分类任务(例如 5 个标签)中经常使用的微观和宏观平均值之间的差异有关。
在多标签设置中,通过为 120 个样本上的所有 5 个分类器预测制作真阳性、假阳性、真阴性、假阴性的聚合列联表来计算微平均分数。然后使用该列联表来计算微精度、微召回率和微 f 度量。因此,当我们有 120 个样本和 5 个分类器时,会根据 600 个预测(120 个样本 * 5 个标签)计算微观度量。
使用宏变体时,会在每个标签上独立计算度量(精度、召回率等),最后,对这些度量进行平均。
微观与宏观估计之间差异背后的想法可以扩展到二进制分类问题中的 K 倍设置中可以完成的事情。对于 10 倍,我们可以平均超过 10 个值(宏观测量)或连接 10 个实验并计算微观测量。
背景 - 扩展示例:
下面的例子说明了这个问题。假设我们有 12 个测试样本,我们有 10 个折叠:
- 折叠 1:TP = 4,FP = 0,TN = 8精度= 1.0
- 折叠 2:TP = 4,FP = 0,TN = 8精度= 1.0
- 折叠 3:TP = 4,FP = 0,TN = 8精度= 1.0
- 折叠 4:TP = 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 非常不同!