具有非恒定采样间隔的时间序列预测

机器算法验证 回归 时间序列 机器学习 分类 预言
2022-04-08 02:47:23

我有一些可以这样建模的数据:每个数据样本是一系列离散信号值测量的时间每个样本的信号测量和进行测量的时间都因样本而异:在一般情况下。SS(tn){1,1}(tn,S)1nNSNSNSNStn,Stn,S

换句话说,每个数据样本都是在不同时间提出的一系列“是或否”答案。

我有一些训练数据。现在,给定一个数据样本,我想预测下一个问题的答案,换句话说:的值。更好的是有一个“否”答案的概率:SS(tNS+1)P(S(tNS+1)=1)

我不知道该怎么做。有什么提示吗?首发?

编辑:如果始终同时测量信号(),并且每个数据样本的信号测量数量恒定(),那么我可以为每个数据样本生成一个包含第一个信号测量维向量测量将是与样本关联的标签。然后,问题将归结为可以解决的分类/回归问题,例如:使用线性 SVM。不幸的是,每次信号测量之间的时间差对实验很重要。tn,S=tn,SNS=NSN1N1S=[1,1,1,1,1,]S(tN){1,1}S

2个回答

从广义上讲,我可以想到三种方法:

  • 留在你的原生空间:在样本之间例如,您可以对中的每个 t并按两者之间的距离加权。拥有此功能后,您可以使用内核方法进行学习(例如,如果您正在进行分类,则使用 SVM)。如果你想证明你的 SVM 会收敛,你需要确保你的距离函数是半正定的,但实际上它可以很好地工作。您在这里的表现将取决于您设计距离函数的程度。d(S1,S2)t1t2S1S2

  • 提取一些特征。IE。映射到一个 m 维空间。一个示例方法:将您的时间线分成 k 个(重叠)箱,用于各种 k 值,并为每个箱 1 到 k 计算三个值:-1s、+1s 和 0s(无信号)的数量。然后,将所有值(对于所有 k,对于 1 到 k,所有三个频率)连接到一个向量中,并将其用作您的实例的表示。然后,您可以使用任何您喜欢的基本分类器。您在此处的表现将取决于特征提取的质量。它应该捕获尽可能多的相关信息,并尽量减少结果向量的维数。

  • 使用时间模型。递归神经网络或隐马尔可夫模型可以读取进来的信号并学习与信号同步。然后它将在任何时候连续预测下一个值。缺点是通用框架少得多。您必须做更多的工作才能为您的领域实现所有内容,并且比较模型之间的结果更加困难。回声状态网络(或水库计算)可能是一个很好的模型来研究您的信号是否具有长记忆。

如果你想保持简单,我会选择第二个选项,如果你想减少任意选择,第一个选项,如果前两个不工作,第三个选项。

如果我理解正确,这只是标准的顺序二进制预测。你有一个字母表和样本从(你的字母表上所有有限长度字符串的集合)给定一个字符串您想要预测(从时间的观察结果) 。Σ={1,1}Σs1:t1Σ1t1st

您可以应用许多技术。最好的方法在很大程度上取决于数据的性质,尤其是每个序列的长度以及依赖结构的复杂程度。例如,最常见的符号可能是一个很好的预测器。另一方面,如果您的数据具有由较长时间段分隔的依赖关系,例如,您'将会有一段糟糕的时光,因为这些类型的关系是出了名的难以学习。st+1=sign(i=1tsi)=si=1P(si+100=1)>>P(si+100=1)

在不了解更多信息的情况下,很难提出任何特定的方法,但这里有一些潜在的想法可以让您开始/向谷歌提供东西。

  • nth阶马尔可夫模型
  • k - 具有一些适当距离函数的最近邻(例如 Levenshtein 距离)
  • 隐马尔可夫模型
  • 递归神经网络
  • 上下文树权重