我经常使用非常大的数据集,在构建机器学习模型时检查所有相关的超参数组合是不切实际的。我正在考虑随机采样数据集,然后使用该示例执行超参数调优。然后,我将使用所选的超参数使用完整的数据集来训练/测试模型。
这种方法的缺点是什么?
发布于 2019-01-17 14:15:10
良好做法之一是为管道的每个优化/培训步骤在dataset中创建一个拆分。由于您有大型数据集,所以应该有足够的数据将原始数据集拆分为多个子集,并且每个步骤仍然有相关的行数。因此,例如,您可以将数据集划分为60%的训练、20%的超参数调优和20%的测试。
重要的是要避免使用相同的数据对超参数进行优化,因为这可能导致将模型的两个调优步骤过度拟合到相同的数据源。
此外,要注意如何对原始数据源进行采样。在处理高度偏斜的分类特征时,随机抽样会导致测试集中的类别在训练过程中不被观察到,从而导致某些模型的破坏。此外,数值特征在训练和测试集之间应该有相似的分布。
发布于 2019-01-17 16:04:24
您也许可以使用嵌套交叉验证,其中您将数据划分为N个折叠,然后将每个折叠进一步划分为一个训练和测试集,并使用它们为该折叠找到最佳的超参数,等等。在此最好解释如下:
https://datascience.stackexchange.com/questions/44109
复制相似问题