在进行特征向量的处理的时候,我们经常需要将分类的变量变化以数字形式表达的变量,比如某一个特征向量里为:’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):返回原来的值
