随机

实际考虑因素

使数据生成流水线可重现。假设您要添加一项特征以了解其对模型质量有何影响。为了进行公平的实验,除了这项新功能外,您的数据集应该完全相同。如果无法生成数据生成运行作业,您将无法创建这些数据集。

本着这种精神,确保数据生成过程中的任何随机化都可以确定性:

  • 随机数生成器 (RNG)。种子可确保每次运行 RNG 时都以相同的顺序输出相同的值,从而重新创建数据集。
  • 使用不变的哈希键哈希处理是拆分或采样数据的常见方式。您可以对每个样本进行哈希处理,并使用生成的整数来决定放置样本的拆分点。您每次运行数据生成程序时,都不应更改哈希函数的输入。切勿在哈希中使用当前时间或随机数,例如,如果您需要按需重新创建哈希。

上述方法同时适用于数据的采样和拆分。

哈希处理的注意事项

同样,假设您要收集搜索查询,并使用哈希技术来包含或排除查询。如果哈希密钥仅使用了查询,则针对多天的数据,您将始终包含该查询或始终排除该查询。始终包含或始终排除查询会降低效果,原因如下:

  • 您的训练集将会看到一组不太多样化的查询。
  • 评估集很难得到训练,因为它们不会与您的训练数据重叠。实际上,在传送时,您应该已经看到训练数据中的一些实时流量,因此评估结果应反映这一点。

您可以对查询 + 日期进行哈希处理,这样每天的哈希处理会有所不同。

 

动画化的可视化内容显示了如何仅对查询进行哈希处理,使数据每天进入同一存储分区;而对查询进行哈希处理以及查询时间则会导致数据每天进入不同的存储分区。三个类别分别为“训练”、“评估”和“忽略”。