多少数据足以训练我的机器学习模型?


11

我从事机器学习和生物信息学研究已有一段时间了,今天我与一位同事就数据挖掘的主要一般问题进行了交谈。

我的同事(是机器学习专家)说,他认为,机器学习最重要的实践方面是如何理解您是否收集了足够的数据来训练机器学习模型

这句话令我感到惊讶,因为我从未在这方面给予过如此重视。

然后,我在Internet上寻找了更多信息,并且根据经验,我在FastML.com上发现了这篇文章,根据您的经验,您需要的数据实例大约是功能的10倍

两个问题:

1-这个问题在机器学习中真的特别重要吗?

2 - 是的10倍规则工作?这个主题还有其他相关资料吗?


1.是的 2.这是一个很好的基线,但是您可以通过正则化来解决它,以减少有效的自由度。这对于深度学习尤其有效。3.您可以通过针对误差或得分绘制样本量的学习曲线来诊断问题所在。
Emre

@Emre谢谢!您还可以建议我一些论文或任何材料阅读吗?
DavideChicco.it

通常,这将与教科书中的交叉验证和其他模型验证技术一起讨论。
Emre

如果可以实现10倍规则,那将是很好的选择,但在某些企业环境中这并不实际。在许多情况下,特征数量远大于数据实例(p >> n)。有专门设计用于应对这些情况的机器学习技术。
数据科学专家

如果您需要详细的说明来帮助您了解学习曲线图,请查看以下内容:scikit-yb.org/en/latest/api/model_selection/learning_curve.html
shrikanth singh

Answers:


6

十次规则对我来说似乎是一个经验法则,但确实,如果您没有为机器学习算法提供足够的训练数据,它的性能可能会降低。

确定是否有足够的训练数据的一种实用且以数据为依据的方式是通过绘制学习曲线,如以下示例中所示:

学习曲线

学习曲线表示随着训练量的增加,训练和测试错误的演变。

  • 训练误差随着您增加数据集的大小而增加,因为适应模型的难度越来越大,因为模型说明了训练集的复杂性/可变性不断增加。
  • 随着数据集大小的增加,测试错误会减少,因为该模型能够从大量信息中更好地进行概括。

正如您在图的最右侧看到的那样,图中的两条线趋于到达并渐近。因此,您最终将达到增加数据集大小不会对训练后的模型产生影响的地步。

测试误差和训练误差渐近线之间的距离代表模型的过度拟合。但更重要的是,此图表明您是否需要更多数据。基本上,如果您为增加训练数据的更大子集而表示测试和训练错误,并且这些线似乎没有达到渐近线,则应继续收集更多数据。


在learning_curve函数中,我应该通过X_train, y_train: Only train subset还是X, y: the entire dataset
Rookie_123

建立曲线是由于您增加样本数量而应用交叉验证的结果。因此,您需要整个数据集。
巴勃罗·苏

4
  1. 是的,这个问题肯定是相关的,因为您拟合模型的能力将取决于您拥有的数据量,但更重要的是,它取决于预测变量的质量。
  2. 10倍规则可能是一个经验法则(还有很多其他规则),但这实际上取决于功能的预测效用。例如,虹膜数据集很小,但很容易解决,因为特征可以很好地分离目标。相反,您可能有1000万个示例,但如果功能较弱,则无法拟合。

谢谢!您还可以建议我一些论文或任何材料阅读吗?
DavideChicco.it
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.