DAI 如何在生产环境中处理新的(在训练中看不到的)分类值?

How does DAI handle new (unseen in training) categorical values within a production environment?

我想确认 DAI 遵循类似的结构来处理它在训练中没有遇到的分类变量,就像这个答案 中一样。我无法在 H2O Driverless AI 文档中明确找到它。

还请说明 link 的某些部分是否已过时(如回答中所述),以及如果情况不同,将如何处理它。请注意 h2o DAI 的版本。谢谢!

编辑 该信息现在在文档中有详细说明 here

下面描述了当您尝试在训练期间未见过的分类级别上进行预测时会发生什么。根据您使用的 DAI 版本,您可能无法访问特定算法,但给定算法,详细信息应适用于您的 DAI 版本。

  • XGBoost、LightGBM、RuleFit、TensorFlow、GLM

    Driverless AI 的特征工程管道将为数据中存在的每个分类级别计算一个数值,无论它是否是先前看到的值。对于频率编码,看不见的级别将被替换为 0。对于目标编码,将使用目标值的全局平均值。等等

  • FTRL

    FTRL 模型不区分分类值和数值。无论 FTRL 在训练期间是否看到特定值,它都会将所有数据逐行散列为数字,然后进行预测。由于您可以将 FTRL 视为记住数据集中所有可能的值,因此无法保证它会对看不见的数据做出准确的预测。因此,重要的是要确保训练数据集在唯一值方面与用于进行预测的数据集有合理的“重叠”。

由于 DAI 使用与 H2O-3 不同的算法(XGBoost 除外),因此最好将它们视为单独的产品,对未见水平或缺失值的处理可能不同 - 尽管在某些情况下存在相似之处。

如评论中所述,H2O-3 的 DRF 文档现在应该是最新的。

希望这个解释对您有所帮助!