多热编码与标签编码

数据挖掘 编码
2021-09-19 15:16:38

我正在学习神经网络的不同输入向量表示

稀疏 One-Hot 编码向量的替代方法之一是 Multi-Hot 编码。

我是否正确理解传统的二进制计数方法正是 Multi-Hot 的含义?我们可以把一个字节想象成一个由 8 个分量组成的向量,每个条目要么是 0,要么是 1.0

问题的第二部分:

我想使用 Multi-Hot 编码来表达多达 255 个可能的输入值。如果我使用二进制方法,这是否与标签编码相同?从某种意义上说,网络会发现 00000010 优于 00000001,即存在“强相关性和优先级”?

或者它没有那么夸张?例如,在标签编码中,我可以只使用 1 个输入神经元,强度在 0 到 255 之间变化,很像枚举。那里的效果会被夸大,因为它呈现出非常明显的价值优先权A 超值 A1

这意味着我不能将它用于 255 个不同的类别(或相对不相关的类别)

Multi-Hot 编码中的效果是否一样糟糕,特别是在二进制方法中?


如果它与 Label-Encoding 相同(仅使用 1 个输入神经元),为什么人们会考虑 Multi-hot,膨胀输入向量的维度?

这篇文章指出,当输入应该包含时,我们可以使用 multi-hotN连接的 one-hot 向量。例如表示N每个实体都可以属于Z不同的类别。还有其他用途吗?

2个回答

您可以将二进制编码视为标签编码和 one-hot 编码之间的折衷。对于不同的类别,标签编码会引入错误的线性顺序,从而给模型带来大量噪声(类别 1 < 类别 2 < 类别 3....)。二进制编码在类别之间引入了错误的加法关系(例如,类别 4 + 类别 1 = 类别 5 或 100 + 001 = 101),但数量较少。

因此,二进制通常比标签编码效果更好,但是只有 one-hot 编码通常会保留数据中的完整信息。

除非您的算法(或计算能力)在它可以处理的类别数量上受到限制,否则 one-hot 编码将优于其他编码方案。如果您受到限制,平均编码是一种强大的替代方法,因为它将分类特征转换为数字特征(为您提供最少的输入),同时保留数据中最重要的信息。

[均值编码将每个类别替换为其目标均值。需要在单独的数据集上仔细构建平均编码以避免数据泄漏。如果您想尽可能减少输入尺寸,这可能会有所帮助。均值编码作为附加功能也很有帮助,在 Kaggle 上非常流行,可以挤出一些额外的性能。这也称为目标编码或似然编码。]

我是否正确理解传统的二进制计数方法正是 Multi-Hot 的含义?我们可以把一个字节想象成一个由 8 个分量组成的向量,每个条目要么是 0,要么是 1.0

我坚信如此。

这意味着我不能将它用于 255 个不同的类别(或相对不相关的类别)

Multi-Hot 编码中的效果是否一样糟糕,特别是在二进制方法中?

我找到了一个非常有趣的答案。看起来二进制实际上可以很好地用于分类任务!
看看论文“A Comparative Study of Categorical Variable Encoding Techniques for Neural Network Classifiers” 2017 年最后一页的表格

在此处输入图像描述

这意味着我们可以通过令人难以置信的数量节省输入神经元的数量,而不是使用传统的 one-hot 编码。

就个人而言,我可以直观地理解:标签编码告诉我们设置一个具有不同值的神经元:1,2,3,4... 网络从 1 到 2 和从 2 到 3 线性插值真的很容易, 通过使用分数。因此,这些输入值之间存在非常强的预测性,并且网络很容易接受这一点。所以我们不能对类别使用标签编码。

与此相反,二进制编码表现出更“类似整数”的行为。换句话说,如何以二进制形式(从 0001 到 0010)线性插值从 1 到 2 并不那么明显,这也类似于 one-hot 方法:)