如何为 tensorflow 2.0+ 中的分类列创建嵌入(尤其是令牌到 Id 的映射)?

数据挖掘 张量流 词嵌入
2022-03-09 11:50:12

我有一个包含分类和浮点数据类型的 csv。我想做以下事情:

  1. pd.unique()对于每个分类列,我将使用 pandas 来计算列中存在的唯一值 ( )。u_l一列
  2. 我将使用len(u_l)来决定我用于我想要嵌入的特定分类列的嵌入维度(这一步是我不能使用 tensorflow_transform 的原因)
  3. 我想创建一些可以将category (token)值映射到嵌入索引的有状态节点,因此随后我可以从我在步骤 2 中创建的嵌入矩阵中查找嵌入

我现在不知道该怎么做。我可以看到一个非常不雅的解决方案是使用 tensorflow_datasets:

  1. encoder = tfds.features.text.TokenTextEncoder(u_l,decode_token_separator=' ')
  2. c_l使用空格分隔符 ( )连接整个列(c_l现在是一个字符串),然后使用encoder.encode(c_l)

这是一个非常基本的事情,我认为 tensorflow 可以相对容易地完成。请指导我找到正确的解决方案

1个回答

Embedding()层将序列作为输入。如果您的数据中没有时间依赖性(例如时间序列数据集或语言语料库),则无法使用这些层。你有什么样的数据?

或者,您可以使用降维单热编码或在某些情况下使用标签编码我个人建议尽可能减少维度,即使它是计算量最大的选择。