对小型数据集进行多次交叉验证+测试,以提高信心

时间:2015-07-19 17:23:17

标签: machine-learning cross-validation

我目前正在处理大约25个样本(200个特征)的非常小的数据集,我需要进行模型选择,并且还具有可靠的分类准确性。我计划将数据集拆分为训练集(4倍CV)和测试集(用于测试未见数据)。主要问题是从测试集获得的结果准确性不够可靠。

那么,多次执行交叉验证和测试可以解决问题吗?

我计划多次执行此过程,以便更好地确信分类准确性。例如:我会运行一个交叉验证加测试,输出将是一个"最好的"模型加上测试集的准确性。下一次运行我将执行相同的过程,然而,"最佳"型号可能不一样。通过多次执行此过程,我最终得到一个主要模型,准确度将是该模型上获得的精度的平均值。

由于我从未听说过像这样的测试框架,是否有人对该算法提出任何建议或批评?

提前致谢。

2 个答案:

答案 0 :(得分:0)

算法看起来很有趣,但你需要通过数据进行大量传递,并确保某些特定模型真正占主导地位(它在真正的大多数测试中表现出来,而不仅仅是“超过其他人”#39;)。通常,在ML中,真正的问题是数据太少。正如任何人都会告诉你的那样,不是拥有最复杂算法的团队获胜,而是拥有最多数据量的团队。

在你的情况下,我还建议一种额外的方法 - 自举。细节在这里: what is the bootstrapped data in data mining?

或者可以谷歌搜索。简而言之,它是一个替换的样本,它可以帮助您将数据集从25个样本扩展到更有趣的东西。

答案 1 :(得分:0)

如果数据像你的一样小,你应该考虑' LOOCV'或者留出一个交叉验证。在这种情况下,您将数据划分为25个不同的样本,其中每个样本都有一个不同的观察点。然后使用25个单独的预测来计算性能。

这将允许您在建模中使用最多的数据,您仍然可以很好地衡量性能。