0

给定一组形状特征,(n, 12, 382) where n is the size of the batch目标变量是二元的。我正在尝试训练 LSTM 模型。

问题的障碍是数据应该在模型中表示的方式。最初,我有形状的特征(比如一个样本)(1, X, 382) where X is in the range of [1,12]。示例:(1, 5, 382) 和手头问题的性质如下:

At (1, 5, 382): I'm aware of the target of (1, 4, 382), (1, 3, 382), (1, 2, 382) and (1, 1, 382)
At (1, 4, 382): I'm aware of the target of (1, 3, 382), (1, 2, 382) and (1, 1, 382)
... so on

因此,我的目标变成为所有时间步创建级联形式的样本,即 (X,y):

[[[f1,f2,f2]]], 1                                     # At T1
[[[f1,f2,f2]], [[f1,f2,f3]]], 0                       # At T2
[[[f1,f2,f2]], [[f1,f2,f3]], [[f1,f2,f3]]], 1         # At T3
... up to number of timesteps (12 with Padding)

尽管我已经看到人们在 LSTM 的每个学习材料中使用滞后特征,但我的问题与时间索引和预测并不完全相关。想法是学习seq并预测下一个seq。

这样做时,我想添加第 383 个特征,即was_one包含目标的值,但直到当前时间步长,而当前时间步长包含填充值(例如 -999)。

例子:

[[[f1,f2,f3, was_one]]], 1                                              # was_one = -999 as it the first timestep and that is what we are trying to predict
[[[f1,f2,f2, was_one]], [[f1,f2,f3, was_one]]], 0                       # was_one at T1 = 1, as we know while predicting for timestep two what was the value of T1 whereas was_one at T2 = -999
[[[f1,f2,f2,was_one]], [[f1,f2,f3,was_one]], [[f1,f2,f3,was_one]]], 1   # was_one at T1=1, T2=0 and T3 = -999

有了这个功能,我的模型的 AUC 大约是 0.72,在删除这个功能后,它下降到 ~0.65。

问题:

  1. 只是好奇通过像我提出的滞后形式中的功能这样的目标是否合法?还是我在某种意义上传递了未来的信息!
  2. 填充当前时间步长(被预测)的方法是否有效was_one-999如果没有,请提出另一种方法!
4

0 回答 0