如何为分类变量(尤其是许多类别)实现特征选择?

数据挖掘 Python 特征选择 随机森林 分类数据 预测重要性
2021-10-11 06:54:16

我一直在尝试了解在进行特征选择时如何处理分类变量。主要是我一直在 Python 上运行随机森林特征重要性,其中预处理可以发挥重要作用。

对于一些带有大量唯一值的变量,例如州、邮政编码、城市……一个热编码可能没有意义,因为它会爆炸你的向量长度。另一个问题是该类别的代表性。例如:如果你只有一个来自 MI 的观察结果,那么为这个状态编码一个特征真的有意义吗?什么被认为是处理此类变量的最合适方法?

2个回答

一些算法会固有地执行特征选择——例如弹性网络回归、随机森林——所以在运行算法之前你不一定需要这样做。

您已经确定了 one-hot 编码的一个问题 - 它可能会创建非常宽的数据集。另一个问题是基于 one-hot 编码变量的特征选择技术将识别重要的特征级别而不是重要的特征我认为您可能希望将您的功能“放在一起”而不是评估各个级别。

您是否考虑过一些基本的统计测试?有时简单的方法和复杂的方法一样有用。有用的检验包括 ANOVA(连续响应,分类预测变量)和卡方/克莱默 V 独立性检验(分类响应,分类预测变量)。

尝试将它们聚集在一起-例如当您附近有几个小城市时,最好将它们视为像西雅图和贝尔维尤这样的一个城市可以合并为一个类别西雅图