机器学习——特征工程(实战)

本文介绍了如何在机器学习中使用one-hot编码处理类别字段,如将动物类别转换为数字,并展示了如何对数字列进行去均值和方差归一化以提升模型性能。通过实例演示了OneHotEncoder和StandardScaler的应用,最后合并了类别特征和数值特征以准备模型输入。
摘要由CSDN通过智能技术生成

onehot编码——类别字段

机器学习中,对于一些类别字段,计算机是不能直接进行识别的。例如某个数据集中,动物类别分为cat、dog、turtle、fish等,可以通过onehot编码将其转换成计算机所能识别的数字。

pet

cat
dog
turtle
fish
cat
catdogturtlefish
1000
0100
0010
0001
1000

#分类字段处理
df = pd.readcsv('d:/1.csv')
cat_columns = ["cat","dog","turtle","fish"]   #需要进行one-hot编码的分类字段的名字
from sklearn.preprocessing import OneHotEncoder   #导入包
oneHotEncoder = OneHotEncoder(drop = 'first')  #删除每一组独热变量中的第一列变量(通常用于防止线性回归出现多重共线性的问题)
cat_features = oneHotEncoder.fit_transform(df[cat_columns]).toarray()   #将数据中的类别特征进行训练。

数字列——去均值和方差归一化

目的:加快求解速度,提升预估精度 

方案:(X-mean)/std

num_columns=["1","2","3","4"]   #数值列名
from sklearn.preprocessing import StandardScaler  #导入数据包
standardScaler = StandardScaler()   #创建一个标准化的对象
num_features = standardScaler.fit_transform(df[num_columns]) #对数值列进行标准化

将类别特征和数值特征进行拼接

X = np.hstack([cat_features,num_features])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白日梦想家_胖七七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值