什么是 One Hot Design?
在计算机科学和电子学领域,有一些方法是用来表示数据的,因此可以在机器和计算机中使用。这些方法称为编码方案。 One-hot 编码是这些方法之一。
在本文中,我们将讨论单热编码、它的工作原理、应用程序等。
One-Hot 编码:
在对数据变量进行分类的过程中使用了一种热编码,因此它们可以用于机器学习算法以做出更好的预测。因此,我们在 one-hot 编码中所做的是将每个分类值转换为不同的列,并为每列提供一个二进制值,0 或 1。每个整数值代表一个二进制向量。
为了更好地理解它,让我们看一个下面的例子:Type AB_ one-hot BC_ one-hot CD_ one-hot AB 1 0 0 BC 0 1 0 CD 0 0 1 AB 0 0 0
为了清楚这一点,让我们再举一个例子,假设我们有一些黄色和绿色的值。在 one-hot 的帮助下,我们可以给黄色为 0 和绿色为 1 的数值。
在这里,一旦我们已经给出了数值,下一步就是创建一个二进制向量,它显示我们给出的数值。在这里,向量将显示 2 作为长度,因为我们已经提交了 2 个值。
因此,它会将 [1,0] 显示为二进制向量中黄色的值,而绿色的值将显示为 [0,1]。
在这里,我们可以通过比较下表中整数 0-4 在二进制、格雷码和 one-hot 中的表示来理解这个概念:Decimal Binary Grey code One-hot 0 000 000 0000000 1 001 001 0000001 2 010 011 0000010 3 011 010 0000100 4 100 110 0001000 5 101 111 0010000 6 110 110 0100000 7 111 100 1000000
应用:
One-hot 编码被广泛应用于许多不同的应用中,例如电子、机器学习、数字电路等。使用 one-hot 的一些最常见的应用是
1.机器学习:
机器学习是一种用于数据分析的方法。这个过程包括调整模型和让程序有机地学习。从技术上讲,它涉及算法的结构化,该算法按顺序采用模型并提高其质量以进行预测。
机器学习的思想主要基于计算机与人类语言之间的交互。它包括语音识别和理解,
机器学习常用的一些领域是保险理赔分析、生物信息学和医学诊断、图像处理和模式识别、搜索引擎、金融市场分析等。
为什么 One-Hot 编码在机器学习中很重要?
一种热编码是一种有用的方法,用于彼此没有关系的数据类型。在机器学习算法中,整数的顺序是首选。用明确的话来说,它读取的数字越大越好,然后越低。
在某些情况下,给定的输入数据可能没有正确的分类值顺序,这可能会导致性能问题并导致预测错误。
因此,为了防止此类问题,one-hot 编码起着重要作用。为了更清楚地理解它,让我们看看如何将分类数据转换为数值数据。
通过以下步骤,我们可以将分类数据转换为数值数据。
- 第一步,我们为每个类别值分配一个数值。假设我们有三个值 A、B、C。我们可以将它们分配为 1、2 和 3。
- 现在,由于它们没有顺序或排名,因此在第二步中,我们必须将 one-hot 编码应用于我们已应用的整数。为此,我们添加一个二进制变量来代替整数编码变量。
- 由于我们在示例中给出了三个类别,因此这里我们使用三个二进制变量。在这里,我们将值 1 作为每个模型的二进制代码,将值 0 用于其他模型。
A | B | C |
---|---|---|
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
2. 电子:
One-hot 编码也可用于电子产品,其中电压可用于表示模拟或数字输出线上的值。
例如,逻辑门电路由具有数字输入的互连“节点”的大型网络组成,从而产生数字输出。在不使用任何解码的情况下,这似乎是表示输出状态的更好选择。
3.数字电路:
One-hot 编码用于各种不同的数字电路来表示它们的 I/O 值。例如,它可以用于表示状态机的状态。同样,如果选择了另一种表示,例如灰色或二进制,则需要解码器来识别状态。但是对于 one-hot,状态机不需要解码器,因为如果第 n 位为高,则机器在逻辑上处于第 n 状态。
环形计数器可以被认为是有限状态机的一个很好的例子。一个触发器的输出连接到另一个触发器的输入。
第一个计数器代表第一个状态,第二个表示第二个状态,同样是连续的。一开始,机器中的每个触发器都设置为“0”,除了第一个,它显示值“1”。
当下一个时钟沿到达触发器时,一个“热”位被移动到第二个触发器。 '热'位以这种方式连续,直到机器在返回第一个状态后到达最后一个状态。
优点:
- 适用于机器学习: one-hot 编码的第一个也是最重要的优点是它可以工作。一种热编码旨在处理分类数据变量,以便它们可用于机器学习算法以做出更好的预测。
- 将数据转换为二进制值: One-hot 用于将每个分类值转换为不同的分类列,它给出一个二进制值,0 或 1,而不是序数。
- 实施的简单性:这种方法实施起来简单直接。而且,比其他方法更容易理解。
- 解码数据所需的时间更少:众所周知,使用 one-hot 编码是一种更快的方法,因为与其他方法相比,解码数据所需的时间更少。
缺点:
- 增加计算成本:它增加了计算成本,因为在处理过程中它增加了维数。
- 许多值的表示很困难:此外,它还有一个缺点是它不能表示许多值。例如,对于 n 个状态,我们将需要 n 个数字或触发器。
- 多重共线性的可能性更高- one-hot 编码的另一个缺点是,由于存在虚拟变量,多重共线性的可能性要高得多,这会影响模型的性能。
- 稀疏度的增加:稀疏矩阵是大多数元素为零的矩阵。稀疏性的增加可能是 one-hot 编码的另一个缺点。