分类变量,进行One hot编码,维度升高,如何处理?

  统计/机器学习 数据预处理 数据降维    浏览次数: 814
1

如果一个分类变量有非常多的类,进行one hot编码后,维度会升得很高,该如何处理?

谢谢!


 

whs_ita   2018-01-12 15:09



   3个回答 
4

有几种思路可以尝试的:

1. 要看这个变量背后的逻辑了,就像雷猴说的,它的意义是什么,有没有办法按照这个分类变量本身的意义进行合并。

2. 按照目标值进行合并,比如你的目标是0-1二元预测,如果这个分类变量取A的时候,90%是1;取B的时候,89%是1。那么A和B就可以合并在一起。最后再做one hot。如果你的目标是回归,也是类似的方法。

3. 把分类变量的分类按频次高低排序,累计到90%或者95%的分类都保留,最小的10%或者5%可以合并成一类。

4. hashing trick,随机合并。


DuckU   2018-02-12 11:09

3

那要看你的分类变量是什么了,有没有办法进行一些合并。

比如你的分类变量是中国的村镇,那你可以合并到县或者市甚至省这一级别。

比如你的分类变量是产品,那你看看能不能分到什么大类里面。

总之就是进行合并处理。


此外,有些分类变量可能频次特别低,比如出现次数小于20次或者50次的那种,你把所有这种小频次的大不了也可以合并起来。


雷猴   2018-02-07 12:32

2

还有个思路是不对分类变量做one hot处理,而是用y的均值代替。


曾经是科比   2018-03-19 14:37



  相关主题

hashing trick或者feature hashing是什么   1回答

维数大于样本数的问题   3回答

python里怎么实现t-SNE降维?   1回答

t-SNE如何实现降维?   1回答

NLP中的hashing trick是什么?   1回答

线性回归或者逻辑回归中常提到的AIC和BIC是什么意思?   1回答

训练集加入噪声防止over fitting还是加剧overfitting?   3回答

PCA降维之前为什么要先标准化?   2回答

PCA会降低分类器的精度吗?   3回答

关于朴素贝叶斯特征工程、特征选择的问题   2回答

sklearn.decomposition.PCA方法中fit, fit_transform, transform应该怎么用   1回答

为什么PCA被称作非监督式学习?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!