preprocessing.LabelEncoder用法

在机器学习中,大多数算法,譬如逻辑回归,支持向量机SVM,k近邻算法等都只能够处理数值型数据,不能处理文字,在sklearn当中,除了专用来处理文字的算法,其他算法在fit的时候全部要求输入数组或矩阵,也不能够导入文字型数据(其实手写决策树和普斯贝叶斯可以处理文字,但是sklearn中规定必须导入数值型)

然而在现实中,许多标签和特征在数据收集完毕的时候,都不是以数字来表现的。比如说,学历的取值可以是["小学",“初中”,“高中”,"大学"],付费方式可能包含["支付宝",“现金”,“微信”]等等。在这种情况下,为了让数据适应算法和库,我们必须将数据进行编码,即是说,将文字型数据转换为数值型

class sklearn.preprocessing.LabelEncoder

Attributes

classes_

array of shape (n_class,)

Holds the label for each class

Methods

fit(self, y) Fit label encoder
fit_transform(self, y) Fit label encoder and return encoded labels
get_params(self[, deep]) Get parameters for this estimator.
inverse_transform(self, y) Transform labels back to original encoding.
transform(self, y) Transform labels to normalized encoding.

LabelEncoder 可以将标签分配一个0—n_classes-1之间的编码将各种标签分配一个可数的连续编号:

Example

from sklearn import preprocessing
le = preprocessing.LabelEncoder()

lb=le.fit(["paris", "paris", "tokyo", "amsterdam"])
lb.classes_
# array(['amsterdam', 'paris', 'tokyo'], dtype='<U9')

lb.transform(["tokyo", "tokyo", "paris", "amsterdam", "amsterdam"]) 
# array([2, 2, 1, 0, 0], dtype=int64)
Update time: 2020-05-23

results matching ""

    No results matching ""