独热编码(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为未激活。
区别在于最后一个状态位,当前五个状态位都为未激活的状态,则默认为第六个状态。
老年人的五个状态位都为未激活状态,说明,前五个状态都不是,那么就默认为第六个状态——老年人。