Skip to content

分类数据的 7 种编码技术

7 Categorical Data Encoding Techniques

下面是编码分类特征的 7 种方法:

ds p205 1

我们在以下链接中详细讨论过它们:https://bit.ly/3LkfVq5。

  • 每个类别用一个由 0 和 1 组成的二进制向量表示。

  • 每个类别都有自己专属的二进制特征,同一时刻只有其中一个为“热”(置为 1),表示该类别的存在。

  • 特征数量 = 唯一分类标签的数量

  • 与 one-hot 编码相同,但多了一个步骤。

  • 在 one-hot 编码之后,我们随机丢掉一个特征。

  • 我们这样做是为了避免虚拟变量陷阱(在本章中讨论)。

  • 特征数量 = 唯一分类标签的数量 - 1

  • 与虚拟编码类似,但多了一个步骤。

  • 把全为 0 的那一行改为 -1。

  • 这能确保得到的二进制特征不仅表示特定类别的存在或缺失,还表示参考类别与“任何类别都不存在”之间的对比。

  • 特征数量 = 唯一分类标签的数量 - 1。

  • 为每个类别分配一个唯一的标签。

  • 标签编码在类别之间引入了内在的顺序,而实际情况未必如此。

  • 特征数量 = 1。

  • 与标签编码类似——为每个类别分配一个唯一的整数值。

  • 所赋的值具有内在的顺序,即一个类别被认为大于或小于另一个类别。

  • 特征数量 = 1。

  • 也称为频率编码。

  • 根据每个类别的频率对分类特征进行编码。

  • 因此,计数编码不是用数值或二进制表示来替换类别,而是直接把每个类别对应的计数赋给它。

  • 特征数量 = 1。

  • one-hot 编码与有序编码的结合。

  • 它把类别表示为二进制代码。

  • 每个类别先被赋予一个有序值,然后该值被转换为二进制代码。

  • 接着把二进制代码拆分成多个独立的二进制特征。

  • 在处理高基数分类特征(或大量特征)时很有用,因为它相比 one-hot 编码降低了维度。

  • 特征数量 = log(n)(以 2 为底)。

虽然这些都是最流行的几种技术,但请注意,它们并不是编码分类数据(categorical data)仅有的方法。你可以用 category-encoders 库尝试许多技术:https://pypi.org/project/category-encoders。

本站内容仅供学习交流,版权归原作者所有。