我目前正在尝试为Scikit-Learns的RandomForest模型(回归)预处理一个具有许多分类特征的非常大的数据集。分类数据的性质要求不通过编码方案添加任何顺序性。H2o ML框架(Link)提供了enum-encoding,它非常适合我的数据。然而,我依赖于Scikit-Learns RandomForest。
有没有人知道一些针对Scikit-Learn模型的enum-encoding?(One-Hot-Encoding不是选项)
提前感谢!
发布于 2018-06-14 17:46:06
只有标签编码、LabelEncoder和OHE在sklearn中可用。然而,它并没有提供您想要的功能,因为类别被简单地编码为整数,我相信这只对序数类别有意义。我相信,在sklearn中,实现这种枚举类别处理的是模型(因为sklearn中有很多模型,它们中的大多数都无法从这种编码中受益)。
我认为,LightGBM声称here在内部实现了这种类型的类别处理,但我实际上不能100%确定这是否是真的。优点是它们都有RF和GBM树构建器,所以你可以很容易地在它们之间切换,而且它比sklearn实现更快。
还要注意的是,CatBoost有一个用于内部类别编码的reach工具包,但到目前为止我还没有使用它的经验。
https://stackoverflow.com/questions/50853542
复制相似问题