在构建决策树模型时如何处理分类特征

3

我使用H2O构建分类模型,例如GBM、DRF和DL。 我的数据集包含一些分类列,如果我想将它们作为创建模型的特征,是否需要手动将它们转换为虚拟变量? 我阅读过GBM可以在内部对分类变量进行虚拟化。

2个回答

4
是的,H2O是为数不多的机器学习库之一,不需要用户对分类变量进行预处理或独热编码(又称“哑编码”)。只要数据框中的列类型是“因子”(又称“枚举”),那么H2O就知道该如何自动处理。
特别地,在基于树的方法(如随机森林或GBM)中,H2O允许直接使用分类变量。树型算法有能力原生地使用分类数据,并且通常比独热编码表现更好。在GLM或深度学习中,H2O会在幕后自动对分类变量进行独热编码——无论哪种方式,您都不需要进行任何预处理。如果您想获得更多控制权,可以使用categorical_encoding参数来控制自动编码的类型。

1
在H2O中,直接处理分类变量是一种巨大的优势。如果将分类变量进行独热编码,则相当于将一个变量拆分为几个值主要为0(例如稀疏)的变量。如Erin所述,这会使决策树表现更差。这是因为决策树在每个分裂点使用"信息增益"。稀疏特征(来自独热编码)具有较少的信息增益,因此比分类特征不太有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接