计算机视觉|机器视觉|机器学习|深度学习
编者荐语
独热编码,又称虚拟编码,是一种将分类变量转换为数值向量格式的方法。每个类别在数值向量中都有自己的列或特征,并被转换为0和1的数值向量。
特征工程是数据科学模型开发的重要组成部分之一。数据科学家把大部分时间花在数据处理和特征工程上,以便训练一个鲁棒模型。数据集由各种类型的特征组成,包括类别、数字、文本、日期时间等。
由于大多数机器学习模型只理解数值向量,所以各种特征需要被设计成数值格式。有各种编码技术可以将文本数据转换为数字格式,包括词袋、Tf-Idf矢量化等等。分类特征可以编码成数字格式,独热编码就是其中一种方式。
机器学习特征处理——独热向量编码
在机器学习算法中,常会遇到分类特征是离散的,无序的,那么我们应该如何去处理呢?
什么是独热编码
独热编码(One-Hot Encoding),又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。即,只有一位是1,其余都是0值。
例如,对六个状态进行编码:
自然顺序码为 000,001,010,011,100,101
独热编码则是 000001,000010,000100,001000,010000,100000
为什么要进行独热向量编码
在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的。而常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
使用独热编码(One-Hot Encoding),将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。将离散型特征使用独热编码(One-Hot Encoding),会让特征之间的距离计算更加合理。
什么情况下不需要独热向量编码
1、如果特征是离散的,并且不用独热编码就可以很合理的计算出距离,就没必要进行独热编码。(比如,离散特征共有1000个取值,分成两组是400和600,两个小组之间的距离有合适的定义,组内距离也有合适的定义,就没必要独热编码)
2、有些并不是基于向量空间度量的算法,数值只是个类别符号,没有偏序关系,就不用进行独热编码。
3、如果原本的标签编码是有序的,就不必独热编码了,因为会丢失顺序信息。