我目前正尝试为Scikit-Learn的随机森林模型(回归)预处理一个具有许多分类特征的大型数据集。由于分类数据的本质,需要避免通过编码方案引入任何序数。
H2o ML-Framework(链接)提供了 enum
编码,非常适合我的数据。然而,我依赖于Scikit-Learn的随机森林模型。
是否有人知道一些适用于Scikit-Learn模型的enum
编码?(独热编码不是选项)
提前感谢!
我目前正尝试为Scikit-Learn的随机森林模型(回归)预处理一个具有许多分类特征的大型数据集。由于分类数据的本质,需要避免通过编码方案引入任何序数。
H2o ML-Framework(链接)提供了 enum
编码,非常适合我的数据。然而,我依赖于Scikit-Learn的随机森林模型。
是否有人知道一些适用于Scikit-Learn模型的enum
编码?(独热编码不是选项)
提前感谢!
在sklearn中,只有标签编码LabelEncoder和OHE可用。然而,它没有提供你想要的功能,因为类别仅被编码为整数,这对于顺序类别才有意义。我相信,在sklearn中,这是留给模型来实现此类枚举类别处理的(因为sklearn中有许多模型,其中大多数无法从这种编码中受益)。
我认为LightGBM声称here它在内部实现了这种类型的类别处理,但我并不确定是否属实。优点是它们都有RF和GBM树构建器,所以你可以轻松地在这两者之间切换,并且比sklearn实现更快。
请注意,CatBoost 还有一个用于内部类别编码的强大工具包,但我目前没有使用经验。