是否有一种简单的方法来计算具有 x 变量的机器学习算法所需的最小数据线数?

机器算法验证 机器学习 多元分析 经验法则
2022-03-25 23:26:33

问题是:我正在制作一个机器学习算法,它接受我编写的一些软件的输入和输出,但我不知道要产生多少数据线才能获得“良好”拟合的结果。我意识到答案是“越多越好”,但我正在寻找任何最低要求。我还意识到,变量的数量越多,所需的数据线数量就越多。

所以我正在寻找一个关于变量数量到数据线数量的经验法则。

3个回答

除了 Dikran Marsupial 的出色建议:

虽然您需要的训练数据没有硬性最低要求,

  • 有一条经验法则说,每个类中每个变量有 5* 个案例,您通常可以拥有一个稳定的线性分类器。现在,稳定并不能保证好的,但不稳定的总是坏的。但是请注意,在许多数据非常广泛的学科中,好的模型是用少得多的样本来训练的。
    * 我也见过 3 和 6,但这是同一个数量级。
  • 您可以计算测试所需的最小样本量:通常,建立一个好的模型是不够的。您还需要证明模型表现良好。然而,对于相对简单的问题,只有小样本量可用,这实际上可能是问题中更难的部分。
    不过,不确定它是否适用于您的场景:您可能能够生成足够多的独立行,这不是问题。
    另请注意,作为测试用例比例的分类性能度量(总体准确度、灵敏度、特异性、预测值、精确度、召回率等)受到非常高的方差影响,因此需要较大的测试样本量。这也可能导致学习曲线出现相当大的困难(请参阅下面的论文中的插图)。Frank Harrell 会告诉您应该使用更好的衡量标准,例如 Brier 的分数(参见下面链接的讨论)。但是,根据您的领域,您可能需要报告比例。

这是我们为此写的一篇论文:Beleites, C. and Neugebauer, U. and Bocklitz, T. and Krafft, C. and Popp, J.:分类模型的样本量规划。Anal Chim Acta, 2013, 760, 25-33。DOI: 10.1016/j.aca.2012.11.007
arXiv 上接受的手稿: 1211.1323

另请参阅:需要多大的训练集?

在选择训练的样本数时,可以考虑偏差和方差之间的权衡。

训练的一个目的(在许多目的中)是在Eout给定获得的样本内误差的情况下估计样本外误差EinVC 分析中有这样的概括:(Eout <= Ein + Omega也称为 Hoeding 不等式,写成概率格式)。所以人们倾向于通过实验观察 和 的Eout变化Ein他们发现:随着样本数量的增加,Eout最终会收敛到Ein一个简单的模型;同时Eout也从一个巨大的值收敛到一个相对恒定的值,以及一个复杂的模型,但仍然比Ein. 这样的 VC 分析曲线可以等效地看作是一个偏差-方差权衡曲线,它表明方差随着样本数的增加而减小。你可以参考此幻灯片了解更多详情。另一方面,目标复杂度也会影响泛化误差。这张幻灯片显示了随着数据点数量的变化而过拟合的度量。可以观察到,如果目标复杂,增加样本数不一定能减少过拟合(图中红色区域),但如果目标不复杂,仍然可以有效减少过拟合。

如上所述,训练样本量通常与模型复杂度(变量数量)和目标复杂度有关,而测试样本量可以根据所需的准确度性能来估计就像@Dikran 建议的那样,您需要通过观察自己的学习曲线来尝试效果。

对此没有有用的经验法则,因为所需的模式数量很大程度上取决于问题的性质,特别是变量之间潜在关系的形式越复杂,您需要估计的数据越多,噪声破坏数据,您可能需要更多的数据来平均噪声的影响。对机器学习算法的性质也有相当强的依赖性,如果该技术非常适合该问题,您将需要更少的数据,如果它不太适合,您将需要更多的数据。

归根结底,执行推理所需的数据量没有最低限度,您拥有的数据越多,您对推理的信心就越大,但这通常是一种平稳的关系。

我建议生成一个学习曲线 - 测试集误差作为训练模式数量的函数的图。这将为您提供训练模型所需的数据量以及您是否已经达到收益递减点的良好指示。