如何对具有高基数的分类特征进行编码?

时间:2020-05-04 05:05:44

标签: python machine-learning

我被困在包含一些具有高基数的分类特征的数据集中。 就像'item_description'... 我读了一些叫做“哈希”的技巧,但是它的主要思想仍然是模糊和难以理解的,我还读了一个名为“功能引擎”的库,但是我并没有真正找到可以解决我问题的方法。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以查看category_encoders。那里有许多不同的编码器,可用于将具有高基数的列编码为单个列。其中有所谓的贝叶斯编码器,它使用目标变量中的信息来转换给定特征。例如,您有一个TargetEncoder,它使用贝叶斯原理用给定目标的期望值替换类别特征,然后使用类别所取的值,这与LeaveOneOut非常相似。您还可以检查基于catboostCatBoostEncoder,这是特征编码的常见选择。

答案 1 :(得分:0)

选项:

i)使用目标编码。

ii)使用实体嵌入: 简而言之,该技术通过向量表示每个类别,然后进行训练以获得该类别的特征。

iii)使用Catboost:

其他:有一种哈希技巧也可能会有所帮助:https://booking.ai/dont-be-tricked-by-the-hashing-trick-192a6aae3087?gi=3045c6e13ee5