假设我想构建一个时间序列,其中每个时间步长由一个分类数组表示:编码序列看起来像[[2, 0, 5],[3, 1, 4],..],每个条目都有不同数量的可能值(类别)。例如,第一个条目有 0-3 个值,第二个 0-1 等等......
我想训练一个 LSTM 模型以预测下一个时间步长。所以我通过最大类数为每个条目定义了一个热编码:
例如[2, 0, 5]变成
[[0. 0. 1. 0. 0. 0.],
[1. 0. 0. 0. 0. 0.],
[0. 0. 0. 0. 0. 1.]]
不幸的是,这种表示会引发错误
ValueError:y 的形状无效:(1、3、5)
我有三个问题:
- 是否可以将3d y 目标传递给 Keras?
- 我是否应该定义一个单一的 one-hot 编码来组合所有可能的三元组分类值?问题是,在这种情况下,我会失去同一类别中标签出现之间的相关性,因为每个可能的标签组合都将变得独立于其他标签。
- 我应该只对目标 y或输入 X进行一次热编码吗?