【发布时间】:2021-05-27 07:51:12
【问题描述】:
我有序列数据,可以告诉我在不同时间点观察到多个受试者的颜色。例如:
| ID | Time | Color |
|---|---|---|
| A | 1 | Blue |
| A | 2 | Red |
| A | 5 | Red |
| B | 3 | Blue |
| B | 6 | Green |
| C | 1 | Red |
| C | 3 | Orange |
我想获得对接下来 3 个时间步的最可能颜色的预测,以及该颜色出现的概率。例如,对于 ID A,我想知道序列中接下来的 3 项(时间、颜色)以及它出现颜色的概率。
我知道 LSTM 通常用于预测这种类型的顺序数据,并且我会输入 3d 数组,例如
input =[
[[1,1], [2,2], [5,2]], #blue at t=1, red at t=2, red at t=5 for ID A
[[0,0], [3,1], [6,3]], #nothing for first entry, blue at t=3, green at t=6 for ID B
[[0,0], [1,2], [3,4]]
]
将颜色映射到数字后(蓝色-> 1、红色->2、绿色-> 3、橙色-> 4 等)。 我的理解是,默认情况下,LSTM 只是预测每个序列中的下一项,例如
output = [
[[7, 2]], #next item is most likely red at t=7
[[9, 3]], # next item is most likely red at t=9
[[6, 2]]
]
是否可以修改我的 LSTM 的输出,以便我不仅可以预测下一次出现时间和颜色,还可以获得接下来的 3 次颜色和颜色出现的概率?例如,像
这样的输出output = [
[[7, 2, 0.93], [8,2, 0.79], [10,4, 0.67]],
[[9, 2, 0.88], [11,3, 0.70], [14,3, 0.43]],
...
]
我尝试查看 Keras 的 Sequential 文档,但不确定是否找到任何东西。
此外,我看到有一个 TrainX 和 TrainY 通常用于 model.fit(),但我也不确定我的 TrainY 会在这里吗?
【问题讨论】:
-
Sequential与序列无关,它只是堆栈层的接口(更好的名称应该是Model)。
标签: python machine-learning keras neural-network lstm