对大型数据集的随机子采样执行模型参数调整是一种好习惯吗?

机器算法验证 造型 优化 算法 超参数 二次抽样
2022-03-21 05:51:23

在我目前实习的公司中,提供给我们的许多数据集都非常大(数百万行/千兆字节,甚至数兆字节的数据)。

在运行机器学习实验时,我发现自己想要使用(交叉验证的)网格搜索算法来优化我训练的模型的超参数。就时间而言,在上述数据集上执行此操作是一件非常昂贵的事情。

因此,我发现自己想知道对数据集进行更小、随机(或者分层?)的子采样以用于参数调整是否是一种有效的方法,因此我可以使用这些参数在大部分数据上训练最终模型数据集,甚至整个数据集?

1个回答

这个问题真的很笼统。取决于数据和模型,这可能是一个好的做法,也可能是坏的。

总体思路是考虑“数据和模型的复杂性”。我们可能需要审查偏差和方差的权衡,即何时会发生欠拟合和过拟合以及如何检测它。

如何知道 SVM 模型的学习曲线是否存在偏差或方差?

关于打开样本的问题:通常,数据越复杂,样本量有限,就越难获得“代表性”样本。

如果数据“非常复杂”,并且样本具有“代表性”,那么使用样本来调整参数是一种不好的做法。解决的方法是尝试更多的样本,并使用复杂的模型(例如神经网络)。

您可以看到我的答案在某些部分确实不清楚,这是因为很难说数据和模型的复杂性,以及需要多少样本才能“具有代表性”。