数据挖掘算法原理与实践第四关:离散值编码

本关任务:利用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版权协议,转载请附上原文出处链接和本声明。