sklearn里的LabelEncoder什么用?很多代码里都有这个。
但是没搞清楚什么作用。已经是label了,为什么还要再encoder?
3个回答
label encoder就是把lable编码的。比如label是一串地名,是无法直接输入到sklearn的分类模型里作为训练标签的,所以需要先把地名转成数字。然后LabelEncoder就是帮你做这件事的。
>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"]);
>>> le.transform(["tokyo", "tokyo", "paris", "amsterdam", "amsterdam"])
array([2, 2, 1, 0, 0])
再做特征工程时,我们需要处理已有特征,对于分类特征通常有两种处理方案:
- 自然数编码
使用sklearn中的LabelEncoder方法,转换为数值型特征
- 独热编码(one-hot encoding)
生成一个(n_examples * n_classes)大小的0~1矩阵,每个样本仅对应一个label
可以使用pandas中的get_dummies实现
SofaSofa数据科学社区DS面试题库 DS面经