数据预处理:类别型变量的编码问题 5C

在数据挖掘的数据预处理对类别型变量编码过程中,其中一个类别型变量含具有有很多不同的取值(200个),若对这个的类型做OneHot编码,会给数据增加200个特征,大大增加了数据的维数。
请问对于这样的类型变量该怎么处理呢?
1.需要做卡方封箱吗?用python该怎么分箱处理?
2.或者编码后做PCA降维处理?PCA具体怎么降维呢?
3.还有其他更好的方法吗?
谢谢

3个回答

你可以先看看这些特征能不能做一些合并,或者是把那些出现频率低的特征归为一类。在one-hot编码后也可以进行PCA降维,PCA降维的原理其实无外乎奇异值分解和特征值分解两种,你可以网上看一看。

1.分层编码。可以根据任务场景将类别分层。例如身份证号码或者邮政编码,可以取不同位数进行分层,然后按层次进行自然数编码。该类编码需要专业领域知识
2.计数编码。将类别特征用其计数来代替。对异常值敏感,特征值冲突
3.计数排名编码
4.目标编码。
楼主可以根据相应的场景,选取使用。不建议楼直接使用独热编码,数据维度会很稀疏。建议使用分层编码。

一般来说,可以用自编码深度神经网络,输入你的原始维度,中间经过隐层,输出是降维后的维度,这是一个编码器。
然后再把编码器的输出接隐层,再接输出层是你原始的维度,把你原始值作为标签去训练。也就是解码器。以上构成一个自编码解码器。
逐步减少编码器的输出维度,直到训练效果不好,那么这个编码器就是你要的了。
你可以自己google下auto encoder deep neural network。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
如何批量地将数据集中的分类变量设置成因子变量
1
间歇性出现:ora-01483:DATE或NUMBER赋值变量的长度无效
1
LSTM模型如何进行新数据的预测?
3
为什么java需要配置环境变量
1
评分卡特征变量的挑选(R语言)
1
C语言全局变量和静态全局变量和局部变量和静态局部变量在初始化和未初始化时生存期和作用域的具体情况怎么样?
2
如何用kettle实现比较源数据库中的所有表数据和目标数据库中的对应的表数据是否一致
1
处理器对不同数据类型的操作
2
python 全局变量设置问题
2
新手问:C++封装接口中内部外部变量的问题?
1
如何实现从键盘输入字符串,给字符型变量赋值呢?
5
java中能否把一个string变量的值作为另一变量名
2
关于指针全局变量和局部变量存储位置的问题
3
Java面向对象的问题,为什么要使用private变量,这样有什么好处
1
Java 内存区域中关于局部变量的值的存放位置
2
【已解决】java环境变量配置问题
0
Java语言中定义变量遵循的规则是什么,为什么有的程序需要那么多的变量
1
Java语言怎么实现函数对主程序变量的一个调用的方法呢?调用变量和函数的区别
2
Java语言函数里面的变量和主程序如果一样的话,调用的是哪个变量
1
Matlab中回归变量之间的关系: 给出以下数据,将X0,Y0与 E,E1,n1, C, B建立起关系,怎么通过具体的代码实现,求大神指点,最好有代码,谢谢!!!