0.1 机器学习中Onehot独热编码的解析

独热编码One-hot

一位有效编码,主要使用n位寄存器对于n个状态进行编码

假如说我们有两个标签,分别是“a”,“b

那么我们为了方便,将a分配为0b分配为1,故a的标签就是0,而b的标签就是1

对应的,0用二进制向量[1,0]表示,1用二进制向量[01]表示,

[1,0]表示第0个元素为1

[0,1]表示第1个元素为1

所以对于我们设计好的独热编码,分出的类别,更为准确

再举个例子,我们在数字进行识别的时候,有0-9的九个数字,对于随机一个数字6,他的独热编码方式就是总共8个数字,第五个数字设为1,也就是000001000

可以这么说,有n个情况的特征,经过独热编码后,变成有n个二维特征,每次只有一个处于有效状态

python中使用sklearn可以简单的实现独热编码属性值的训练和样本特征的表示

#导入对应的库

from sklearn import preprocessing

#定义enc方法,使用onehot编码

enc = preprocessing.OneHotEncoder()

#利用样本数据训练结果,要求样本数据涵盖所有属性值

enc.fit([[0,0,3],[1,2,0],[0,2,1],[1,1,2]])

#转换结果成数组,

array = enc.transform([[0,1,3]]).toarray()

结果

1,0,0,1,0,0,0,0,1

在这其中

第一列特征有两个值分别是0,1

第二列特征有三个值为0,1,2

第三列有四个值,为0,1,2,3

第一组值为0,结果为10(表示所因为0的值有效)

第二组为1,独热编码为010,(表示索引为1的值有效)

第三组为3,独热编码为0001(表示索引为3的值有效)

组合起来就是[1,0,0,1,0,0,0,0,1]

Edge

于2019.1.15

此条目发表在机器学习分类目录,贴了, , 标签。将固定链接加入收藏夹。

0.1 机器学习中Onehot独热编码的解析》有1条回应

  1. 张一极说:

    666666

发表评论

电子邮件地址不会被公开。 必填项已用*标注