独热编码和哑编码的区别(易懂)

独热编码(one-hot encoding)

基于数据集的某一特征的N个状态值,用N位编码来作区别

例如将人群基于年龄特征分为:婴儿,幼儿,少年,青年,中年,老年六个状态,则需六位编码来做区分,如下图:

婴儿 幼儿 少年 青年 中年 老年
100000 010000 001000 000100 000010 000001

其中每一个状态位代表当前状态是否激活,1为激活,0为未激活。

比如婴儿这个状态,第一个状态位代表婴儿状态,值为1,代表婴儿状态为激活状态,其他五位为0,代表其他的五个特征为未激活状态。

哑编码(dummy encoding)

基于数据集的某一特征的N个状态值,用N-1位编码来作区别

同样还是上述案例,用哑编码区别如下:

婴儿 幼儿 少年 青年 中年 老年
10000 01000 00100 00010 00001 00000

和独热编码一样,前五个状态每一个状态位代表当前状态是否激活,1为激活,0为未激活。

区别在于最后一个状态位,当前五个状态位都为未激活的状态,则默认为第六个状态。

老年人的五个状态位都为未激活状态,说明,前五个状态都不是,那么就默认为第六个状态——老年人。


版权声明:本文为bill_wjn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。