跳转至

独热编码

1 什么是独热编码

  1. One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。用来特征数字化。

  2. 案例:

  3. 性别特征:["男","女"]

  4. 祖国特征:["中国","美国,"法国"]
  5. 运动特征:["足球","篮球","羽毛球","乒乓球"]

  6. 对于["男", "中国", "乒乓球"], 数字化结果为: $$ 男 => 10\ 女 => 01\ 中国 => 100\ 美国 => 010\ 法国 => 001\ 足球 => 1000\ 篮球 => 0100\ 羽毛球 => 0010\ 乒乓球 => 0001\

[1,0,1,0,0,0,0,0,1] $$

2 为什么使用One-Hot编码处理离散性特征

  1. 在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
  2. 而我们使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。
  3. 将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。
  4. 有一个离散型特征,代表工作类型,该离散型特征,共有三个取值,不使用one-hot编码,其表示分别是。两个工作之间的距离是,。那么工作之间就越不相似吗?显然这样的表示,计算出来的特征的距离是不合理。那如果使用编码,则得到,那么两个工作之间的距离就都是.即每两个工作之间的距离是一样的,显得更合理。

  5. 将离散型特征进行one-hot编码的作用,是为了让距离计算更合理,但如果特征是离散的,并且不用one-hot编码就可以很合理的计算出距离,那么就没必要进行one-hot编码。