我为这个新手的问题道歉,但我希望这里的人能给我指明正确的方向。
我想预测事件( X )发生的时间,因为我怀疑几个时间序列与X的时间相关。我的模型将接受完整的时间序列作为输入,并为事件X预测发生的时间输出一个值。请注意,我不是试图预测未来事件的时间,而是预测过去事件的时间。当使用该模型时,我将访问整个时间序列。下面简要介绍一下这些数据的外观:

我的数据集包含许多示例,如上面的示例,即设置窗口中的几个时隙,以及事件发生的时间。
像LSTM模型这样的东西能被训练来完成这项任务吗?经过深入研究,LSTM和RNN模型看起来很适合预测时间序列中的下一个点,而不是像我所描述的那样输出事件的时间。
我能够相当一致地拟合一些时间序列的曲线,所以我尝试训练一些基于树的ML算法关于这些拟合曲线的系数,但没有成功。接下来,我希望尝试一种更复杂的基于时间序列的方法。
我希望你能把我引向正确的方向。我应该研究什么类型的模型或方法。
发布于 2020-09-05 09:21:04
这类问题可以用两种不同的方式建模,我称之为事件时间和时间对事件。第一个是你已经尝试过的东西,并在你的图片中加以说明。
在整个时间序列中输入,并以事件的时间为目标。目标可以被编码为从序列开始的第二步,整个序列持续时间的百分比等等。
优势:
缺点:
将时间序列划分为多个重叠的分析窗口。对于每个窗口,计算(及时)到感兴趣事件的距离,并将其用作目标。目标可以用秒表示,也可以用时间步数表示.请注意,它可能是正的(在未来,相对于窗口)或负的(在过去,相对于窗口)。
在训练时,最简单的设置是处理每个这样的分析窗口,时间-目标对被视为独立的实例。
在预测时间,每个单独的分析窗口然后通过模型。然后,必须对每个单独窗口的预测进行聚合,以给出单个预测。在最简单的情况下,这可能只是平均值或中位数。更高级的案例,例如,基于时间的权重预测(可能)
优势:
缺点
相对于整个时间序列,窗口长度可能相当短。Ex 15分钟系列,60秒窗口,每个窗口之间使用5秒转发(91.66%重叠)。这将使15分钟*60/5s=每系列180个实例。
或者窗口的长度可以非常接近整个时间序列。Ex 15分钟系列,10分钟窗口和1分钟转发在每个窗口之间(90%重叠)。给出15分钟/1分钟=每串15个实例。
这里最有效的方法是高度依赖于问题和数据。
像这样的多个分析窗口的使用实际上是一种数据增强技术(时移)。由于它也适用于预测时间,因此也是测试时间增强(TTA)的一个例子。
我总是建议从非时间序列模型开始作为基线。总结每个窗口内的特性(每个变量的均值、std、(max-min) ),并使用线性回归、随机森林来查看它的性能。这表明了问题的复杂性。并且是超级快做一些初始超参数扫描(例如,关于窗口的长度)。您应该将这些特性/预测绘制成探索性数据分析/错误分析的一部分!
在那之后,我会尝试一个简单的LSTM / GRU模型,或者可能是一个一维CNN。
https://datascience.stackexchange.com/questions/81247
复制相似问题