首页 > 其他 > 详细

独热编码

时间:2020-05-17 22:32:11      阅读:51      评论:0      收藏:0      [点我收藏+]

在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。
这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。

那什么是特征数字化呢?例子如下:

性别特征:["男","女"]----[0,1]
祖国特征:["中国","美国,"法国"]----[0,1,2]
运动特征:["足球","篮球","羽毛球","乒乓球"]----[0,1,2,3]

现在有‘某人‘={
            "男"
            "中国"
            "乒乓球"
            }

那么这个人数字化特征就是[0,0,4]来表示,但是这样的特征处理并不能直接放入机器学习算法中。因为类别之间是无序的(运动数据就是任意排序的),也就是算法识别的0无序,所以无法的值特征是哪一个?如此执意训练,造成负训练效果

独热编码又称为一位有效编码

—————————————————————————————————————————————————
性别:

男 => 10
女 => 01

祖国特征:["中国","美国,"法国"](这里N=3):

中国 => 100
美国 => 010
法国 => 001

运动特征:["足球","篮球","羽毛球","乒乓球"](这里N=4):

足球 => 1000
篮球 => 0100
羽毛球 => 0010
乒乓球 => 0001

所以,当一个样本为["男","中国","乒乓球"]的时候,完整的特征数字化的结果为:

[1,0,1,0,0,0,0,0,1]

为什么使用one-hot编码来处理离散型特征?

—————————————————————————————————————————————
将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。

比如,有一个离散型特征,代表工作类型,该离散型特征,共有三个取值,不使用one-hot编码,其表示分别是

x_1 = (1)
x_2 = (2)
x_3 = (3)

两个工作之间的距离是:

d(x_1, x_2) = 1
d(x_2, x_3) = 1
d(x_1, x_3) = 2

那么x_1和x_3工作之间就越不相似吗?显然这样的表示,计算出来的特征的距离是不合理。那如果使用one-hot编码,则得到:

x_1 = (1, 0, 0)
x_2 = (0, 1, 0)
x_3 = (0, 0, 1)

那么两个工作之间的距离就都是sqrt(2).即每两个工作之间的距离是一样的,显得更合理

独热编码

原文:https://www.cnblogs.com/thgpddl/p/12907369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!