时间序列分类的功能


43

我考虑基于可变长度时间序列的(多类)分类问题,即找到函数 通过时间的全局表示,由固定大小为的一组选定特征独立于, 然后对该功能集使用标准分类方法。 对预测感兴趣,即预测˚F X Ť= ÿ [ 1 .. ķ ]T

f(XT)=y[1..K]for XT=(x1,,xT)with xtRd ,
viDT
ϕ(XT)=v1,,vDR ,
xT+1。例如,我们可以分析人的行走方式以预测其性别。

我可能要考虑哪些标准功能? 例如,我们可以明显地使用序列的均值方差(或更高阶矩),也可以查看频域,就像该序列的离散傅里叶变换(或离散小波变换)的某个间隔中包含的能量一样。

Answers:


45

简单的统计功能

  • 每个维的均值d
  • 标准偏差的的尺寸d
  • 维的偏度峰度和高阶矩d
  • 最高最低

时间序列分析相关功能

  • 每个维度与自相关之间的相关d×d1 d
  • 估计ARIMA模型的自回归(AR),积分(I)和移动平均(MA)部分的
  • AR部件的参数
  • MA部件的参数

频域相关功能

有关DFT和DWT上的节能功能的研究,请参阅Morchen03

  • 所述的频率在振幅中的DFT去趋势尺寸dk d
  • k这些DFT的位数

1
Emile,这个问题与我刚才提出的问题类似(stats.stackexchange.com/questions/51475/…)。您可以发布DFT功能的任何R代码吗?
B_Miner 2013年

是否存在基于Shapelet的可变长度时间序列方法?
Simone 2015年

8

Emile,我认为您的答案中列出的功能是一个很好的起点,尽管与往常一样,我认为关于您的问题的某些领域专业知识(或至少是长期的思考)同样重要。

您可能要考虑包括根据信号的导数(或积分)计算出的特征。例如,我敢打赌,快速加/减速是容易发生事故的合理预测指标。该信息显然仍存在于位置信号中,但远没有那么明确。

您可能还需要考虑用小波或小波包表示替换傅立叶系数。小波的主要优点是,它们允许您在频率和时间上定位特征,而传统的傅里叶系数仅限于时间。如果您的数据包含不规则地打开/关闭的组件或方波状脉冲(对于傅立叶方法可能是有问题的),这可能特别有用。


6

正如其他答案所建议的那样,有大量的时间序列特征可以用作潜在特征。有简单的功能,例如均值,与时间序列相关的功能(例如AR模​​型的系数)或高度复杂的功能(例如增强的dickey fuller假设检验的检验统计量)。

关于可能的时间序列功能的全面概述

python包tsfresh会自动提取这些功能。其文档描述了不同的计算功能。您可以在此处找到具有计算特征页面

免责声明:我是tsfresh的作者之一。


5

我建议您不要使用经典的方法来提取手工设计的功能,而应使用自动编码器。自动编码器在深度学习架构的特征提取中起着重要作用。

自动编码器尝试学习函数。换句话说,它正在尝试学习恒等函数的近似值,以便输出与相似的。X Ť X Ťf(XT)XTX^TXT

身份功能似乎是要尝试学习的特别琐碎的功能。但是通过对网络施加限制(例如通过限制隐藏单元的数量),我们可以发现有关数据的有趣结构。

特征提取器

这样,如果将最中间的隐藏单元数限制为,则所需的将等效于深度自动编码器中最中间层的输出值。ϕ(XT)=v1,,vDRD

另外,您可以使用多种自动编码器来找到问题的最佳解决方案。



1

根据时间序列的长度,通常的方法是将数据划时代,例如10秒。

但是,通常在将时间序列划分为段之前,有必要执行一些预处理,例如过滤和伪像抑制。然后,您可以计算各种特征,例如基于频率的特征(即每个时期进行FFT),时间(例如该时期中时间序列的均值,方差等)或形态(例如信号的形状) /时间序列)。

通常,用于对时间序列/信号的片段(纪元)进行分类的功能是特定于域的,但小波/傅立叶分析只是允许您在频域/时频域中检查信号的工具,而不是其本身的功能。

在分类问题中,每个纪元都有一个类别标签,例如“ happy”或“ sad”,然后您将训练分类器,以使用为每个纪元计算的6个特征来区分“ happy”和“ sad”纪元。

如果每个时间序列代表一个分类案例,则需要计算时间序列的所有样本中的每个特征。FFT仅在信号为线性时不变(LTI)的情况下才有意义,即,如果可以将信号视为在整个时间序列上都是固定的,则如果信号在感兴趣的时间段内不是固定的,则可以进行小波分析更合适。这种方法将意味着每个时间序列将产生一个特征向量,并将构成一个分类案例。


我一直感觉到,将时间序列(一个自然连续的过程)分解为不连续的时间段(或纪元)会导致信息丢失。除非系列中有自然纪元,否则如何选择纪元?可以找到适合任何期望结果的时代。
Cam.Davidson.Pilon

1
不确定是否可以找到一个适合每个结果的时期,但是对于任何实际问题,对于非平稳信号,您都需要找到某种方式来考虑时间变化(如果信号/时间序列在分析上得到了充分描述,或者线性时间不变这是没有必要的)。历元长度也是特定于域的,但是通常选择为短到足以使信号在感兴趣的时间段(历元)下保持稳定。
BGreene

BGreene,您能解释一下将序列分成几个时期以选择分类中使用的特征有什么好处吗?我认为这种划分是以后计算(即FFT)的辅助工具,而不是与特征本身选择有关的东西。可能与您提到的“形态”有关。
Emile

分割为历元与特征选择无关。如果信号较长(例如,以100Hz的频率采样10个小时的记录),则要检查信号随时间的变化,需要将其分为几个时期。在分类问题中,每个纪元都有一个类标签,例如“ happy”或“ sad”,然后您将训练分类器,以使用为每个纪元计算的6个特征来区分“ happy”和“ sad”纪元。
BGreene

好的:)绝对与我的原始问题无关。我考虑了该类标记整个系列的情况。我将编辑我的问题以添加一个澄清的示例。
Emile
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.