数据预处理中的One-Hot编码

文摘   科学   2021-03-15 10:58  

在数据处理中我们有三类数据,分别为名义、有序和数值型数据,其中前两者表示的是离散型变量,而数值型


变量指的是连续型变量,这里的one-hot编码针对的是名义型的数据,这类离散型数据间名义大小等级之分,如{中国,美国,日本},{apple,banner,orange}等。对于这些数据不能简单的把一组数据中第一个标记为1,第二个为2,……因为组中的数据的排序本身即为随机的,且本身也没有大小之分。


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


One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。


one-hot编码有以下要求:
1.数据为离散型数据
2.样本空间的排列顺序固定(要用one-hot就要事先规定位置,同一样本,不同顺序就会不同)
3.样本空间数据分为2类以上(就两类也没必要one-hot,直接就0-1了,不过本质也一样~~~)


为了更好的说明,我举个例子,有以下的数据:


特征空间为{男,女},{篮球,排球,乒乓球},{苹果,梨},然后一个爱吃苹果爱好乒乓球的男生样本表示为{男,乒乓球,苹果},但计算机不认识这样的表示,所以要进行预处理,第一种方式为(1,3,1),但是这样做就会面临上面的问题,所以第二种为one-hot编码,表示为
(1,0|0,0,1|1,0)←加竖线只是为了表示明显点,实际还是逗号,以{篮球,排球,乒乓球}为例,定原顺序为one-hot编码时的顺序,有(是)则为1,否则为0,即篮球表示为(1,0,0)


one-hot编码的好处:
可以对不同样本间估计距离
      原先篮球若表示为(1),排球表示为(2),乒乓球为(3),机器学习中常用距离表示相似度,那么篮球和排球的距离为sqr(1),篮球与乒乓球间的距离为sqr(2),但球类间是等价的,所以距离应该要相同。
     用one-hot编码时,篮球为(1,0,0),排球为(0,1,0),乒乓球为(0,0,1)所以距离都是sqr(1)
这里我们采用的距离都是欧式距离←就是平面直角坐标系中的那个距离


当特征空间中的离散变量本身直接分析时就有one-hot的优点(能力),或者说数据为连续型变量时就不能使用one-hot


智慧识竹
和小周周一起学习新知识,探索更多的未知世界吧
 最新文章