H2O Flow:H2O flow UI 如何区别对待数据类型

H2O Flow: How does H2O flow UI treat data types differently

具体来说,H2O 处理 enumstring 数据类型的方式与“int's”和“numerical”类型相比有何不同?

例如,假设我有一个二元分类器,它采用具有特征

的输入样本
x1=(1 of 10 possible favorite ice cream flavors (enum))

x2=(some random phrase (string))

x3=(some number (int))

分类器在训练过程中如何处理这些类型会有什么不同?

将数据上传到 h2o Flow UI 时,我可以选择将某些数据类型(如 enum)转换为 'numerical.' 这让我觉得当我将“enum”保留为“enum”(不转换为“numerical”类型时)不仅仅是字符串到数字的映射,但我可以'查找有关该差异的信息。

如有说明,将不胜感激。

"enum" 类型是您要用于分类特征的编码类型。如果分类特征编码为 "enum",那么随机森林和 GBM 等基于树的算法将能够以智能方式处理这些特征。 RF 和 GBM 的大多数其他实现都迫使您对分类特征进行一次热扩展(进入 K 虚拟列),但在 H2O 中,基于树的方法可以使用这些特征而无需任何扩展。可以使用 categorical_encoding 参数控制变量被处理的确切方式。

如果您有一个有序的分类变量,那么将其编码为 "int" 可能没问题,但是,这样做对模型性能的影响将取决于数据。

如果您要将 "enum" 列转换为 "numeric",这将简单地将每个类别编码为一个整数,您将失去这些数字代表类别的概念(因此不推荐这样做) .

您不应在 H2O 中使用 "string" 类型,除非您要将该列从预测变量集中排除。对文本使用 "string" 列是有意义的,但您可能希望解析(例如标记化)该文本以生成将包含在预测变量集中的新数字或枚举特征。