在编程的过程中,有时候我们需要把现实中具象的东西抽象成用0或者1表示的编码,从而能够让计算机去处理。One-Hot编码(独热编码)就是其中一种编码方式。下面我们来具体介绍:
- 比如我们有三种食物,分别是西瓜、黄瓜、苹果,我们用三个特征值(蔬菜还是水果,大小,形状)来标识他们属于哪一种。
- 其中
- 西瓜:【水果,大,圆形】
- 黄瓜:【蔬菜,不大不小,长条形】
- 苹果:【蔬菜,小,圆形】
- 则此时,
- 对于第一个特征:蔬菜还是水果,来说,共有两种情况:水果或者蔬菜
- 对于第二个特征:大小,来说,共有三种情况:大、不大不小、小
- 对于第三个特征:形状,来说,有两种情况:圆形和长条形
- One-Hot编码中,实体的每一个特征是单独一位为1,其它位为0的01串组成,特征的每一个类别(如圆形和长条形)编码结果各不相同,故:
- 对于第一个特征,两种情况,可以编码为:10(对应于水果),01(对应于蔬菜)
- 对于第二个特征,三种情况,可以编码为:100(对应于大),010(对应于不大不小),001(对应于小)
- 对于第三个特征,两种情况,可以编码为:10(对应于圆形),01(对应于长条形)
- 这样的话,就可以依据上面编码,将西瓜、黄瓜、苹果编码为计算机可以认识的不同的字符串,如下:
- 西瓜:10 100 10
- 黄瓜:01 010 01
- 苹果:10 001 10
- 上面就是One-Hot编码后的结果。