定义
One-Hot编码,也叫做一位有效编码
- 采用N个寄存器对N个状态进行编码
- 每一个状态都有其独立的寄存器位
- 并在在任意一个时刻,只有一个位的值有效。即只有一位是1,其他位都是0
例子
国家 = [‘中国’, ‘美国’, ‘俄罗斯’],此时N=3,即有3个状态.
中国 = [1 0 0]
美国 = [0 1 0]
俄罗斯 = [0 0 1]
若还想要同时表示其他属性,例如加上:性别 = [‘男’, ‘女’],此时:
男 = [1 0]
女 = [0 1]
则表示[‘男’, ‘中国’],则为:[1 0 1 0 0 ]
为什么使用One-Hot编码
若不采用的话,例如三个特征的取值为:x1 = 1, x2 = 2, x3 = 3
则计算不同特征之间的距离,此时结果为:
(x1, x2) = 1
(x1, x3) = 2
(x2, x3) = 1
会显示x1和x3之间的距离更远,但实际三者距离应该是相同的
若采用One-Hot编码,此时结果为:
(x1, x2) = 2