H2O Flow:H2O flow UI 如何区别对待数据类型
H2O Flow: How does H2O flow UI treat data types differently
具体来说,H2O
处理 enum
和 string
数据类型的方式与“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" 列是有意义的,但您可能希望解析(例如标记化)该文本以生成将包含在预测变量集中的新数字或枚举特征。
具体来说,H2O
处理 enum
和 string
数据类型的方式与“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" 列是有意义的,但您可能希望解析(例如标记化)该文本以生成将包含在预测变量集中的新数字或枚举特征。