独热编码(One-Hot Encoding),也叫一位有效编码,是用来表示离散变量(categorical data)的一种方法。在机器学习和深度学习中经常会使用独热编码来将离散变量转换为多维向量,以便于算法处理。
独热编码是指将离散型的特征数据映射到一个高维空间中,每个可能的取值都对应于高维空间的一个点,在这些点上取值为1,其余均为0,因此独热编码也被称为“一位有效编码”或“One-of-K encoding”。
独热编码原理可以用以下例子来解释:假设我们有一组汽车品牌数据,包含三种品牌:Benz、BMW、Audi。使用独热编码对这组数据进行编码后,可以得到以下结果:
汽车品牌 | 独热编码 |
---|---|
Benz | [1, 0, 0] |
BMW | [0, 1, 0] |
Audi | [0, 0, 1] |
可以看到,原本三种汽车品牌的离散数据被编码为了一组由3个元素组成的向量,每个元素的取值要么是0,要么是1。
独热编码的优点在于:
适用于大多数算法;
避免了特征之间的大小关系干扰模型的训练;
能够很好地处理分类变量。
独热编码的缺点在于:
当类别数量较多时,会导致稀疏矩阵问题;
在某些应用中,可能并不需要将所有分类都作为分开的一个特征,此时独热编码可能不是最优选择。