自然数编码
总结就是用0-n来表示,
比如:
国籍特征:[‘中国’, ‘美国’, ‘法国’]
性别特征:[ ‘男’,‘女’]
分别用0表示中国的男生,1表示中国的女生,2表示美国的男生,3表示美国的女生,4表示法国的男生,5表示法国的女生。
独热编码
独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。
这里有两个特征:
国籍特征:[‘中国’, ‘美国’, ‘法国’]
性别特征:[ ‘男’,‘女’]
表示一名中国的女生,One-Hot 编码为:[10001]
表示一名法国的男生,One-Hot 编码为:[00110]
使用独热编码效果最好的是验证码识别:
验证码中分别有大写字母,小写字母以及数字组成,总共为62个符号,如果使用自然数编码的话,那么进行四位验证码的分类识别的话,神经网络的输出层为62的四次方,而使用独热编码的话则输出层为62*4。两种方法对比使用,会发现独热编码效果极好。
在pytorch中,可以使用自带的torch.nn.functional.one_hot
。