在进行特征向量的处理的时候,我们经常需要将分类的变量变化以数字形式表达的变量,比如某一个特征向量里为:’amsterdam’, ‘paris’, ‘tokyo‘ 三个地名,不能直接运用于模型中,需要转换为数字变量,比如:amsterdam对于为0,paris为1,tokyo为2。这时我们可以通过LabelEncoder对特征值进行编码。
其功能主要有一下两点:
- LabelEncoder可用于规范标签。
2.它也可以用于将非数字标签转换为数字标签。>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit([1, 2, 2, 6]) #将list:[1,2,2,6]进行标签编码
LabelEncoder()
>>> le.classes_
array([1, 2, 6]) #查看包含的元素
>>> le.transform([1, 1, 2, 6])#先进性编码然后得出索引值
array([0, 0, 1, 2]...)
>>> le.inverse_transform([0, 0, 1, 2])#返回标签值原来的编码
array([1, 1, 2, 6])
总结如下:>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"])
LabelEncoder() #将上述数组进行增添标签
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo'] #查看编码后的类别
>>> le.transform(["tokyo", "tokyo", "paris"]) #查看数组对应的标签编码
array([2, 2, 1]...)
>>> list(le.inverse_transform([2, 2, 1]))#返回标签值原来的编码
['tokyo', 'tokyo', 'paris']
fit(self, y):给数据增加标签
fit_transform(self, y):增加标签并返回标签值
inverse_transform(self, y):返回原来的值