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

在机器学习中有很多特征有可能是字符串类型的:如周志华老师的西瓜书中西瓜的色泽、纹理、根茎等等。
机器学习数据预处理之字符串转数字_第1张图片
计算机对字符串的特征是无能为力的,所以将字符串特征映射成数字就成了一个唯一的选择。
目前有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

你可能感兴趣的:(机器学习)