对于具有数百万条记录的数据集,我有一个具有数千个值的分类变量。数据被用于创建二元分类模型。我处于特征选择的早期阶段,但我正在尝试随机森林、增强树和逻辑回归来看看什么是有效的。
如果我找到每个类别的频率并对其进行排序,我会发现大约 50 个值构成了前 80%。将此特征压缩为关于该值是否在该组值中的二进制文件是否有效。通过“有效”,我的意思是这种转换是否可能为模型保留任何有用的信息?我担心对这些没有任何顺序的分类值进行排序会产生一些不正确的假设。
频率分布看起来有点像这样:
A;10%
D;5%
E;1.2%
B;1.1%
...
Z;0.004%
W;0.0037%
...
更进一步,分析我的数据集中的每个类并做同样的事情是否有效?假设类别 AF 包含 0 类的前 80%,而类别 DH 是 1 类的前 80%。我会转换:
data_id;cat_var
1;B
2;F
3;H
4;Z
到
data_id;cat_var_top80class0;cat_var_top80class1
1;1;0
2;1;1
3;0;1
4;0;0
添加图片以希望清除这个想法。黄色是基于训练集的 0 类和 1 类的 cat_var(图片中的 ***_id)的预先计算的分布。右侧显示了如何应用转换: