LabelEncoder 的使用

这个类的作用官方文档给出了最简洁的解释。

Encode labels with value between 0 and n_classes-1.

即将离散型的数据转换成 0 0 0 n − 1 n-1 n1 之间的数,这里 n n n 是一个列表的不同取值的个数,可以认为是某个特征的所有不同取值的个数。

我用在什么地方:

Kaggle 的泰坦尼克号幸存者预测中,Embarked 这一列的编码:

from sklearn import preprocessing

le = preprocessing.LabelEncoder()
le.fit(train['Embarked'].values.tolist())

# 可以查看一下 fit 以后的类别是什么
le.classes_

# transform 以后,这一列数就变成了 [0,  n-1] 这个区间的数,即是  le.classes_ 中的索引
le.transform(train['Embarked'].values.tolist())

类似的处理有:

# Embarked 登船港口
labels = train['Embarked'].unique().tolist()
labels

labels.index('S'), labels.index('C'), labels.index('Q'), labels.index(np.nan)

train['Embarked'].apply(lambda n: labels.index(n))

参考资料

1、官方文档
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html

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