在机器学习中常用的有两种标签编码方式 Lable Encoder和One Hot Encoder。
它们被用来数字化化分类的数据,或者是文本数据。
举个例子
国家这一栏是文本信息,这样的文本信息不利于机器的understand。所以我们需要把这些categorical text data 转化为model-understandable numerial data, 我们可以使用Label Encoder class
from sklearn.preprocessing import LabelEncoder
labelencoder = LabelEncoder()
x[:, 0] = labelencoder.fit_transform(x[:, 0])
但是这种编码方式存在一个问题:0<1<2,但是实际上这些国家并没有这种关系,它们之间是相互独立的。而One Hot Encoder 可以克服这一问题
One Hot Encoder 可以克服便签的顺序和结构问题。
它是将系列以编码的方式存在
from sklearn.preprocessing import OneHotEncoder
onehotencoder = OneHotEncoder(categorical_features = [0])
x = onehotencoder.fit_transform(x).toarray()
sklearn.preprocessing.LabelEncoder
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
le.fit([1, 2, 2, 6])
le.classes_
le.transform([1, 1, 2, 6])
le.inverse_transform([0, 0, 1, 2])
或者
le = preprocessing.LabelEncoder()
le.fit(["paris", "paris", "tokyo", "amsterdam"])
list(le.classes_)
le.transform(["tokyo", "tokyo", "paris"])
list(le.inverse_transform([2, 2, 1]))