机器学习数据预处理之字符串转数字

在机器学习中有很多特征有可能是字符串类型的:如周志华老师的西瓜书中西瓜的色泽、纹理、根茎等等。
在这里插入图片描述
计算机对字符串的特征是无能为力的,所以将字符串特征映射成数字就成了一个唯一的选择。
目前有2种主流的方法,一种是:标签编码(Label Encoder),另一种是独热编码(One Hot Encoder)。推荐使用独热编码。

标签编码:

标签编码就是对字符串转换成1 , 2,3这种形式,但是存在一个问题,就是标签编码的结果存在大小的关系,所以这种编码显然是有一定的局限性。

#python实现
from sklearn.preprocessing import LabelEncoder

labelencoder = LableEncoder()

X[:, 0] = labelencoder.fit_transform(X[:, 0])

独热编码
独热编码就克服了这局限性
它先对该列字符串进行分类,把原有的一列拆成n列(n是分类的个数),如果字符串所在的那一列在这一类上面则这一列为1,其余列为0。

#python实现
from sklearn.preprocessing import OneHotEncoder
onehotencoder = OneHotEncoder(categorical_feature=0)
x = onehotencoder.fit_transform(x).toarray
  • 15
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值