Python实现独热编码

关于独热编码与哑变量编码的概念,可以参考:https://blog.csdn.net/qq_41853758/article/details/81252174

离散特征的编码分为两种情况:

1、离散特征的取值之间没有大小的意义,比如color:[red,blue],此时可以使用one-hot编码;

2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],此时可以使用数值的映射{X:1,XL:2,XXL:3}。

本文主要讨论独热编码的Python实现:

import pandas as pd

df = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],'data': range(6)})
df

df结构如下所示:

 

利用pd.get_dummies()函数对类别性特征df中的key进行独热编码处理:

dummies = pd.get_dummies(df['key'],prefix='key')
dummies

dummies的结构如下:

 

将经过独热编码处理后的类别特征与其他数值型特征组合起来:

new_df = df[['data']].join(dummies)
new_df

 new_df的结构如下所示:

比较df和new_df我们可以看到,经过独热编码处理后,特征集由原来的两维变成了四维。一般情况下独热编码可以结合PCA一起使用,以降低经独热编码处理后的特征集的复杂性。

 

其他参考:

https://blog.csdn.net/lujiandong1/article/details/52836051

https://blog.csdn.net/wl_ss/article/details/78508367

《Python for Data Analysis》2nd

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值