大神手把手教你:(Python)序列数据的One Hot编码

  • 时间:
  • 浏览:2

在哪几种情况报告下,让我们 想让网络更具表现力,为每个由于的标签值提供概率式数字。这能助 进行问提网络建模。当输出变量使用one-hot编码时,它都后能 提供比单个标签更准确的一组预测。

默认情况报告下,OneHotEncoder类将返回更高效的稀疏编码,这由于不适用于一点应用进程。类似于于使用Keras厚度学习库。在类似于于情况报告下,让我们 通过设置sparse = False类似于于参数来禁用稀疏返回类型。

  h

 [[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

 [7, 4, 11, 11, 14, 26, 22, 14, 17, 11, 3]

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

编码为0红色标签将用二进制向量[1,0]表示,其中第0个索引被标记为值1。一点,编码为1绿色标签将用三个小多 二进制向量[01],其中第三个小多 索引被标记为1

One-Hot编码是分类变量作为二进制向量的表示。这首没法求将分类值映射到整数值。一点,每个整数值被表示为二进制向量,除了整数的索引之外,它也有零值,它被标记为1

 hello world

最后,让我们 反转第三个小多 字母的编码并打印结果。让我们 通过使用NumPy argmax()函数定位具有最大值的二进制向量中的索引,一点使用字符值的反向查找表中的整数进行整数。

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1],

 [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

4.One-Hot Encode with Keras.

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],

 [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

让让我们 用三个小多 小例子来说明一下到底哪几种是One-Hot编码。假设让我们 有三个小多 中有 'red''green'值的标签序列。让我们 都后能 将'red'的整数值分配为0'green'的整数值为1。假如让我们 总爱将哪几种数字分配给哪几种标签,这称为整数编码。一致性是重要的,所以让我们 都后能 稍后反转编码,并从整数值获取标签。

运行示例首先打印标签序列。但是是标签的整数编码,最后是one hot编码。训练数据中有 所有由于示例的集合,一点让我们 都后能 依靠整数和one hot编码变换来创建标签到编码的完全映射。

3.One-Hot Encode with scikit-learn.

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0],

所有由于的输入的映射也有从char值创建为整数值。一点使用该映射对输入字符串进行编码。让我们 都后能 看了输入'h'中的第三个小多 字母被编码为7。一点将整数编码转换为one hot编码。一次完成三个小多 整数编码的字符。创建0个值的列表,以便字母表的长度都后能 表示任何预期的字符的长度。