数据预处理:特征编码

原始数据中的非数值型特征需要转换为数值型才能用于数据分析模型。简单数字编码可能引入误导性次序,而One-Hot编码能避免此问题但会增加特征维度。One-Hot编码的改进形式——哑变量编码,只使用K-1个二元特征,减少了相关性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在现实生活中获得的原始数据会包含非数值型特征,这些特征常常以字符串格式存储,但是数据分析模型需要的输入特征通常都是数值型的,因此我们需要对其进行数字编码,使用数字对离散型的取值进行表示。

数字编码

简单的数字编码
从0开始赋予特征的每一个取值一个整数。
等级型特征
可以按照特征取值从大到小进行整数编码来保证编码后的数据保留原有次序关系。如:{冠军,亚军,季军}可以表示为{0,1,2}。
名义型特征
使用上述编码时可能会产生一些问题,比如按照{0,1,2,3,4}给五个特征值赋值,但是这样会给原数据添加次序关系,到底1赋值给哪个特征值较好?
为了避免上述误导性结果,我们可以使用下面的编码方式。

One-Hot 编码

One-Hot编码将包含K个取值的离散型特征转换成K个二元特征(取0或1),例如特征“汽车品牌”:{路虎,吉利,奥迪,大众,奔驰},一共包含5个不同的值,我们可以将其编码为5个特征f1f_1f1f2f_2f2f3f_3f3f4f_4f4f5f_5f5,这5个特征与原始特征的取值一一对应,当原始特征取不同值时,转换后的特征取值如下表所示:

原始特征取值f1f_1f1f2f_2f2f3f_3f3f4f_4f4f5f_5f5
路虎10000
吉利01000
奥迪00100
大众00010
奔驰00001

这样就不会给名义型特征的取值人为地引入次序关系,但是One-Hot编码也有缺点,首先它会使特征维度显著增多,其次,它会增加特征之间的相关性,我们会发现如下线性关系:
f1+f2+f3+f4+f5=1f_1+f_2+f_3+f_4+f_5=1f1+f2+f3+f4+f5=1
特征之间存在线性关系,会影响线性回归等模型的效果,因此我们需要对One-Hot编码进行一些改变,对于包含K个取值的离散型特征,将其转换成K-1个二元特征,这种编码方式称为哑变量编码(dummy encoding)。将上述例子编码为4个二元特征,当原始特征取不同取值时,转换后的特征取值如下表所示:

原始特征取值f1f_1f1f2f_2f2f3f_3f3f4f_4f4
路虎1000
吉利0100
奥迪0010
大众0001
奔驰0000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值