外观
分类数据的 7 种编码技术
7 Categorical Data Encoding Techniques
下面是编码分类特征的 7 种方法:

我们在以下链接中详细讨论过它们: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。