数据预处理:one-hot编码(离散型特征)

前面介绍了LabelEnconder和OrdanalEncoder,本文介绍OneHotEnconder.如下贴图表示三个类的区别:

再贴一张关于数据类型以及常用的统计量图

 

sklearn.preprocessing.OneHotEnconder类实现独热编码

(1)观察数据

(2)实现Sex和Embarked两列的独热编码示例

直接生成

from sklearn.preprocessing import OneHotEncoder

X = data.iloc[:, 1:-1]

enc = OneHotEncoder(categories='auto').fit(X)
result = one_hot.transform(X).toarray()
result

# 可以一行表示
# OneHotEncoder(categories='auto').fit_transform(X).toarray()

#依然可以还原
# pd.DataFrame(enc.inverse_transform(result))

查看特征名

enc.get_feature_names()  #返回每一个经过哑变量后生成稀疏矩阵列的名字

把result和原来的表合并

newdata = pd.concat([data,pd.DataFrame(result)],axis=1)
newdata.head()

删除原来的两列,并改个列名

newdata.drop(["Sex","Embarked"],axis=1,inplace=True)
newdata.columns = ["Age","Survived","Female","Male","Embarked_C","Embarked_Q","Embarked_S"]
newdata.head()

 

使用pandas完成独热编码

更简单的完成

pd.get_dummies(data['Sex'])

之后按上面的方法合并就好了。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值