我被困在包含一些具有高基数的分类特征的数据集中。 就像'item_description'... 我读了一些叫做“哈希”的技巧,但是它的主要思想仍然是模糊和难以理解的,我还读了一个名为“功能引擎”的库,但是我并没有真正找到可以解决我问题的方法。 有什么建议吗?
答案 0 :(得分:0)
您可以查看category_encoders
。那里有许多不同的编码器,可用于将具有高基数的列编码为单个列。其中有所谓的贝叶斯编码器,它使用目标变量中的信息来转换给定特征。例如,您有一个TargetEncoder
,它使用贝叶斯原理用给定目标的期望值替换类别特征,然后使用类别所取的值,这与LeaveOneOut
非常相似。您还可以检查基于catboost的CatBoostEncoder
,这是特征编码的常见选择。
答案 1 :(得分:0)
选项:
i)使用目标编码。
有关目标编码的更多信息:https://maxhalford.github.io/blog/target-encoding/
此处提供有关类别变量的良好教程:https://www.coursera.org/learn/competitive-data-science#syllabus [部分:关于模型的特征预处理和生成,第3个视频]
ii)使用实体嵌入: 简而言之,该技术通过向量表示每个类别,然后进行训练以获得该类别的特征。
iii)使用Catboost:
其他:有一种哈希技巧也可能会有所帮助:https://booking.ai/dont-be-tricked-by-the-hashing-trick-192a6aae3087?gi=3045c6e13ee5