具体而言,与H2O
和“enum
”类型相比,string
处理int's
和numerical
数据类型的方式有何不同?< / p>
例如,假设我有一个二进制分类器,它接受具有功能的输入样本
x1=(1 of 10 possible favorite ice cream flavors (enum))
x2=(some random phrase (string))
x3=(some number (int))
分类器在培训期间如何处理这些类型会有什么不同?
将数据上传到h2o
流UI
时,我可以选择将某些数据类型(例如enum
)转换为“数字”。这让我觉得当我将“enum
”作为“enum
”(不转换为“numerical
”时,不仅仅是字符串到数字的映射正在进行类型),但我无法找到有关差异的信息。
感谢您的澄清,谢谢。
答案 0 :(得分:1)
&#34; enum&#34; type是您希望用于分类功能的编码类型。如果分类要素编码为&#34; enum&#34;,则基于树的算法(如随机森林和GBM)将能够以智能方式处理这些功能。 RF和GBM的大多数其他实现迫使您对分类特征(到K虚拟列)进行单热扩展,但在H2O中,基于树的方法可以使用这些功能而无需任何扩展。可以使用categorical_encoding
参数来控制处理变量的确切方法。
如果您有一个有序的分类变量,那么可以将其编码为&#34; int&#34;但是,这样做对模型性能的影响将取决于数据。
如果您要转换&#34; enum&#34;列到&#34;数字&#34;这会简单地将每个类别编码为一个整数,并且你会失去这些数字代表类别的概念(因此不建议这样做)。
你不应该使用&#34;字符串&#34;键入H2O,除非您要从预测变量集中排除该列。使用&#34;字符串&#34;是有意义的。文本列,但您可能希望解析(例如,标记化)该文本以生成将包含在预测变量集中的新数字或枚举功能。