Python实现独热编码

版权声明:本文为博主原创文章,转载请附上博文链接。 https://blog.csdn.net/qq_41080850/article/details/86540282

关于独热编码与哑变量编码的概念,可以参考: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

猜你喜欢

转载自blog.csdn.net/qq_41080850/article/details/86540282