本关任务:利用sklearn对标签进行OneHot编码。
LabelEncoder
用于分类型特征,将特征编码为整数
代码实现:
from sklearn.preprocessing import LabelEncoder
label = ['male','female']
int_label = LabelEncoder()
label = int_label.fit_transform(label)
OneHotEncoder
将LabelEncoder输出结果输入估计器,估计器会把整数的大小关系考虑进去,而对于无序的分类特征,整数的大小关系是没有意义的。因此需要使用OneHotEncoder对数据进一步处理
代码实现:
import numpy as np
from sklearn.preprocessing import OneHotEncoder
label = np.array([1,0])
label = np.array(label).reshape(len(label),1)#先将X组织成(sample,feature)的格式
onehot_label = OneHotEncoder()
label = onehot_label.fit_transform(label).toarray()
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,实现OneHot编码方法。
测试说明
我们会调用你实现的方法对标签进行处理,如标签为:
label = [‘male’,‘female’]
则经过OneHot编码后的数据为:
array([[0., 1.],
[1., 0.]])
开始你的任务吧,祝你成功!
# -*- coding: utf-8 -*-
import numpy as np
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
def onehot_label(label):
'''
input:label(list):待处理标签
output:lable(ndarray):onehot处理后的标签
'''
#********* Begin *********#
int_label = LabelEncoder()
label = int_label.fit_transform(label)
label = np.array(label).reshape(len(label),1)
onehot_label = OneHotEncoder()
label = onehot_label.fit_transform(label).toarray()
return label
#********* End *********#
版权声明:本文为Dorcas_M原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。