防止过拟合

训练 BigQuery ML 模型时经常会遇到过拟合的问题。当模型与训练数据的匹配过于紧密时就会出现过拟合,这会导致模型在新数据上表现不佳。BigQuery ML 支持两种防止过拟合的方法:早停法正则化

如需了解如何修改下述选项,请参阅 CREATE MODEL 语句

早停法

早停法是 BigQuery ML 中预防过拟合的默认方法。启用早停法后,系统会在训练期间监控留出数据损失,并在最近迭代的损失改进幅度低于阈值时停止训练。由于训练期间不使用留出数据,因此这是对模型在新数据上的损失的合理估算。early_stopmin_rel_progressdata_split_methoddata_split_eval_fraction 选项用于控制早停法的行为。

正则化

正则化可防止模型权重过大,防止模型与训练数据的匹配过于紧密。BigQuery ML 支持两种方法来控制模型权重的大小:L1 正则化L2 正则化

默认情况下,l1_regl2_reg 的值为零,这会停用正则化。在某些数据集上,为 l1_regl2_reg 设置正值将改进经过训练的模型在新数据上的表现。正则化参数的最佳值通常是通过反复试验确定的,试验通常会使用几个数量级的值(例如,0.01、0.1、1、10 和 100)。

以下是关于使用正则化的一些建议:

  • 如果您正在试验正则化参数,请尝试停用早停法,以使正则化的效果更清晰。

  • 如果特征数量大于训练集的大小,请尝试使用较大的正则化参数值。当每个特征只有少量观察结果时,过拟合的风险会更大。

  • 如果您担心很多特征与预测标签无关,请尝试将 l1_reg 设置为大于 l2_reg 的值,反之亦然。有理论证据表明,当存在许多不相关特征时,L1 正则化的效果更好。

L1 正则化的另一个好处是,它会将许多模型权重设置为零,这有助于确定最相关特征以及训练紧凑模型。

后续步骤