首页 > 解决方案 > 分类特征编码作为 Scikit-Learn 的枚举

问题描述

我目前正在尝试为 Scikit-Learns 的 RandomForest 模型(回归)预处理一个具有很多分类特征的非常大的数据集。分类数据的性质要求不通过编码方案添加任何序数。H2o ML-Framework ( Link ) 提供的enum-encoding 非常适合我的数据。但是我依赖 Scikit-Learns RandomForest。

有人知道enumScikit-Learn 模型的一些编码吗?(One-Hot-Encoding 不是一个选项)

提前致谢!

标签: pythonencodingenumsscikit-learnh2o

解决方案


sklearn中只有标签编码LabelEncoder和 OHE 可用。但是,它没有提供您想要的功能,因为类别被简单地编码为整数,我相信这仅对序数类别有意义。我相信,在 sklearn 中,由模型来实现这种枚举类别处理(因为 sklearn 中有很多模型,并且大多数模型都无法从这种编码中受益)。

我认为,LightGBM在这里声称它在内部实现了这种类型的类别处理,但我实际上并不是 100% 确定这是否属实。优点是它们同时具有 RF 和 GBM 树构建器,因此您可以轻松地在它们之间切换,并且比 sklearn 实现更快。

另请注意,CatBoost有一个用于内部类别编码的到达工具包,但到目前为止我对它的经验为零。


推荐阅读