首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个时间序列预测事件时间

从多个时间序列预测事件时间
EN

Data Science用户
提问于 2020-09-04 19:58:46
回答 1查看 487关注 0票数 0

我为这个新手的问题道歉,但我希望这里的人能给我指明正确的方向。

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

我的数据集包含许多示例,如上面的示例,即设置窗口中的几个时隙,以及事件发生的时间。

像LSTM模型这样的东西能被训练来完成这项任务吗?经过深入研究,LSTM和RNN模型看起来很适合预测时间序列中的下一个点,而不是像我所描述的那样输出事件的时间。

我能够相当一致地拟合一些时间序列的曲线,所以我尝试训练一些基于树的ML算法关于这些拟合曲线的系数,但没有成功。接下来,我希望尝试一种更复杂的基于时间序列的方法。

我希望你能把我引向正确的方向。我应该研究什么类型的模型或方法。

EN

回答 1

Data Science用户

发布于 2020-09-05 09:21:04

这类问题可以用两种不同的方式建模,我称之为事件时间和时间对事件。第一个是你已经尝试过的东西,并在你的图片中加以说明。

事件时间

在整个时间序列中输入,并以事件的时间为目标。目标可以被编码为从序列开始的第二步,整个序列持续时间的百分比等等。

优势:

  • 很简单。标准回归装置

缺点:

  • 时间序列可能很长,模型很难学习。
  • 在训练集中很少有实例。每一时间序列1。
  • 一个系列的单一预测,没有值的分布

Time-to-event

将时间序列划分为多个重叠的分析窗口。对于每个窗口,计算(及时)到感兴趣事件的距离,并将其用作目标。目标可以用秒表示,也可以用时间步数表示.请注意,它可能是正的(在未来,相对于窗口)或负的(在过去,相对于窗口)。

在训练时,最简单的设置是处理每个这样的分析窗口,时间-目标对被视为独立的实例。

在预测时间,每个单独的分析窗口然后通过模型。然后,必须对每个单独窗口的预测进行聚合,以给出单个预测。在最简单的情况下,这可能只是平均值或中位数。更高级的案例,例如,基于时间的权重预测(可能)

优势:

  • 将数据集中的培训实例数乘以
  • 模型输入具有较低的数据复杂度。因为只有一段时间
  • 可以实时/流的方式进行预测。
  • 得到多个预测,形成一种分布

缺点

  • 添加另一个函数块,将窗口预测聚合到单个预测中。
  • 添加额外的超参数。窗口长度,重叠,聚合方法
  • 重叠意味着模型在每个数据点上运行多次。可能会增加预测的计算时间

相对于整个时间序列,窗口长度可能相当短。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。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/81247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档