时间序列都有哪些机器学习任务?

时间序列任务overview

工业互联网、物联网、股票等资产价格中有大量的时间序列数据,从技术上看,从这些时间序列数据能做如下事情:

  1. 时间序列预处理(preprocessing)
  2. 时间序列特征工程(feature engineering)
  3. 时间序列预测(forecasting)
  4. 时间序列异常检测(anomaly detection)
  5. 时间序列分类和回归(classification regression)
  6. 时间序列聚类(clustering)
  7. 时间序列分片(segmentation)

时间序列预处理:时间序列的平滑(smoothing),去噪(denoise),平稳化(stationarity),插值,移除离群点(outliers) 等等。 时间序列预处理是以下任务的基础。

时间序列特征工程:从监控平台获得的原始时间序列数据通常无法直接进行建模,在预处理后还需要依据使用场景和任务提取有效的特征。 时间序列特征工程是以下任务的基础。

时间序列预测:根据历史监控数据预测(forecast)未来一段时间的取值,包括周期(seasonality),趋势(trending)。

时间序列异常检测:能够实时或准实时地发现时序中的离群点(outliers)。离群点可以认为是样本集中极小概率的样本,如漫谈概率论与信息论中的不等式中k-σRule部分谈到的。

时间序列变点检测:能够实时或准实时地发现时序中的分布的变化(change),变点称为changepoints。

时间序列分类和回归:时间序列分类可以把一个时间窗口内的多维时间序列数据预测(predict)为某个标签(这个标签具体由使用场景而定,例如磁盘故障预测,标签为健康和故障。 回归则可以理解为标签连续化的分类。例如磁盘剩余寿命预测,标签是一个连续的值,表示磁盘的剩余寿命。

时间序列聚类:把相似的时间序列分为一个簇(cluster)。时间序列中,度量相似性有很多方法,如常见的欧几里得距离或更高级的 DTW。

时间序列分片:时间序列在长时间的监控中,我们发现可以根据其波动特点划分为几个(连续)阶段,时间序列分片就是为解决如何对时序分片问题。这里,重要的问题是如何定义时间序列的阶段? 如果我们认为时间序列就是一个随机过程的观察样本,不同的随机过程就是不同的阶段,那么时间序列分片就是 changepoints detection。具体来说,我们可以把新阶段定义为:

  1. 当时序的均值(波动的中心位置)发生改变
  2. 当时序的方差(波动的幅度)发生改变
  3. 当时序所来自的分布发生变化

我们就认为时序进入新的阶段。找出各个阶段就是时间序列分片的任务。其中第3种类型是前两种的一般形式。以上七类时间序列任务中,1~2 是其他任务的基础。

应用例子说明

以股票投资中的趋势追踪。对于历史数据,使用时间序列分片切分不同的阶段,然后使用最近的片段(阶段)进行趋势捕捉,如使用时间序列预测(一般是使用收益率进行预测,即价格的对数的差分)。

转载请包括本文地址:https://allenwind.github.io/blog/12152
更多文章请参考:https://allenwind.github.io/blog/archives/