【学习资源】时间序列数据分析方法(1)

时间序列数据分析是一个有趣的话题,让我们多花一些时间来研究。此篇为第一篇文章。主要介绍特征提取方法、深度学习时序数据分析模型、参考资源。期望能帮助大家解决工业领域的相关问题。

1 特征提取方法:信号处理

(来源:INTELLIGENT FAULT DIAGNOSIS AND REMAINING USEFUL LIFE PREDICTION OF ROTATING MACHINERY,西安交通大学出版社)

时域数据的特征提取包括以下几种方法

提取时域特征:均值、方差、标准差、偏度、峭度、峰度等。

提取频域特征:频带能量比、MFCC等

时频域特征 :小波分析,求解各信号特定的小波带

时间序列分析:AR系数

以下特别介绍小波变换。

小波变换wavelet transform

本质特点

时域转化为时+频域,有助于提取系列统计特征;

适用领域

  • 滤波

小波变换具有时频局部化特性、多分辨特性、去相关特性和选基灵活性。前两个性质决定了小波滤波方法与传统方法相比具有独特的优势,即能够在去除噪声的同时,很好地保留信号的突变部分或图像的边缘。小波滤波的特点如下。(1)非平滑性。平滑是去除高频信息而保留低频信息;而小波滤波是要试图去除所有噪声,保留所有信号,并不考虑它们的频率范围。(2)它是小波变换域对小波系数进行非线性处理。

  • 去除噪音

小波变换在时域和频域同时具有良好的局部化性质,不仅可将图像的结构和纹理分别表现在不同分辨率层次上,而且具有检测边沿(局域突变)的能力,因此,利用小波变换在去除噪声时,可提取并保存对视觉起主要作用的边沿信息。

  • (1)低熵性。小波系数的稀疏分布使图像变换后的熵降低。
  • (2)多分辨率特性。由于采用了多分辨率的方法,所以可以非常好地刻画信号的非平稳特征,如边缘、尖峰、断点等,可在不同分辨率下根据信号和噪声分布特点进行去噪。
  • (3)去相关性。因小波变换可对信号去相关,且噪声在变换后有白化趋势,所以小波域比时域更利于去噪。
  • (4)选基灵活性。由于小波变换可以灵活选择基,也可根据信号特点和去噪要求选择多带小波、小波包、平移不变小波等,对不同相应场合,可以选择不同的小波母函数。

此外,小波变换还可以用于重构图像、压缩信号、识别和检索信号、检测边缘等。

2 深度学习时序数据分析模型

本文介绍ROCKET、TST和Inceptiontime,新的文章会介绍其他模型。

2.1 ROCKET(RandOm Convolutional KErnel Transform)

论文 https://arxiv.org/pdf/1910.13051.pdf ROCKET: Exceptionally fast and accurate time series classification using random convolutional kernels

论文摘要:ROCKET 通过使用随机卷积核转换输入时间序列并使用转换后的特征来训练线性分类器,从而以大多数现有方法的一小部分计算费用实现了最先进的准确性。我们将 ROCKET 重新构造为一种新方法 MINIROCKET,使其在更大的数据集上的速度提高了 75 倍,并使其几乎是确定性的(并且可选地,通过额外的计算费用,完全确定性),同时保持基本相同的准确性。使用这种方法,可以在不到 10 分钟的时间内对来自 UCR 档案的所有 109 个数据集的分类器进行训练和测试,以达到最先进的准确度。 MINIROCKET 比具有可比精度的任何其他方法(包括 ROCKET)快得多,并且比任何其他计算成本甚至大致相似的方法都要准确得多。

代码文档 https://timeseriesai.github.io/tsai/models.ROCKET.html

参考代码https://github.com/timeseriesAI/tsai/blob/main/tutorial_nbs/02_ROCKET_a_new_SOTA_classifier.ipynb

具体方法:ROCKET 将大量固定的、不可训练的、独立的卷积应用于时间序列。然后从每个卷积输出(一种池化形式)中提取许多特征,每个样本通常生成 10000 个特征。 (这些功能只是浮点数。)特征被存储以便它们可以被多次使用。然后它学习一个简单的线性头部,根据其特征预测每个时间序列样本。典型的 PyTorch 头可能基于线性层。当训练样本数量较少时,经常使用sklearn的RidgeClassifier。通过实验选择了卷积的固定权重和池化方法,以有效预测广泛的现实世界时间序列。最初的 ROCKET 方法使用了一系列固定卷积,权重根据随机分布选择。基于从 ROCKET 吸取的经验教训,MiniRocket 将卷积细化为特定的预定义集合,该集合被证明至少与 ROCKET 一样有效。它的计算速度也比原来的 ROCKET 快得多。实际上,论文作者"建议现在应该考虑使用 MiniRocket 作为 Rocket 的默认变体。"MiniROCKET 是在 Python 中使用 numba 加速和特定于算法的数学加速实现的。它运行速度非常快,并行使用 CPU 内核。 MiniRocket 的 2 个实现:具有类似 sklearn 的 API 的 cpu 版本(可用于小数据集 - <10k 样本),以及MiniRocket 的 PyTorch 实现,针对 GPU 进行了优化。它的运行速度比 CPU 版本快(3-25 倍,具体取决于您的 GPU),并为进一步实验提供了一定的灵活性。

MINIRocket效果不好的原因在于:只有卷积特征,没有序列特征。

2.2 TST Time Series Transformer

论文 Zerveas, G., Jayaraman, S., Patel, D., Bhamidipaty, A., & Eickhoff, C. (2020). A Transformer-based Framework for Multivariate Time Series Representation Learning. arXiv preprint arXiv:2010.02803v2

论文摘要:首次提出了一个基于变换器的框架,用于多元时间序列的无监督表示学习。预训练模型可用于下游任务,例如回归和分类、预测和缺失值插补。通过在多个用于多元时间序列回归和分类的基准数据集上评估我们的模型,我们表明我们的建模方法不仅代表了迄今为止对多元时间序列采用无监督学习的最成功的方法,而且还超越了当前的状态------监督方法的最先进性能;即使训练样本的数量非常有限,它也会这样做,同时提供计算效率。最后,我们证明了我们的 Transformer 模型的无监督预训练比完全监督学习提供了显着的性能优势,即使没有利用额外的未标记数据,即通过无监督目标重用相同的数据样本。

代码文档 https://timeseriesai.github.io/tsai/models.TST.html

参考代码

tsai/tutorial_nbs/07_Time_Series_Classification_with_Transformers.ipynb at main · timeseriesAI/tsai · GitHub

图片来源:arXiv:2010.02803v2

2.3 Inceptiontime

论文 [1909.04939] InceptionTime: Finding AlexNet for Time Series Classification InceptionTime: Finding AlexNet for Time Series Classification

论文摘要:本文将深度学习置于时间序列分类 (TSC) 研究的前沿。 TSC 是机器学习领域,其任务是对时间序列进行分类(或标记)。该领域过去几十年的工作在分类器的准确性方面取得了重大进展,目前最先进的技术由 HIVE-COTE 算法代表。虽然非常准确,但 HIVE-COTE 不能应用于许多现实世界的数据集,因为它对于具有 N 个长度为 T 的时间序列的数据集的训练时间复杂度为 O(N2 * T4)。例如,它需要更多的 HIVE-COTE从一个 N = 1500 个短长度 T = 46 的时间序列的小数据集学习超过 8 天。同时深度学习因其高准确率和可扩展性而受到了极大的关注。最近的 TSC 深度学习方法具有可扩展性,但不如 HIVE-COTE 准确。介绍了 InceptionTime------受 Inception-v4 架构启发的深度卷积神经网络 (CNN) 模型的集合。实验表明,InceptionTime 在准确性方面与 HIVE-COTE 不相上下,同时具有更高的可扩展性:它不仅可以在一小时内从 1,500 个时间序列中学习,而且在 13 小时内也可以从 800 个时间序列中学习,数量为完全超出 HIVE-COTE 范围的数据。

代码文档 https://timeseriesai.github.io/tsai/models.InceptionTime.html

参考代码

tsai/tutorial_nbs/07_Time_Series_Classification_with_Transformers.ipynb at main · timeseriesAI/tsai · GitHub

3 参考资源

3.1 时序数据分析Python库 tsai

tsai GitHub - timeseriesAI/tsai: Time series Timeseries Deep Learning Machine Learning Python Pytorch fastai | State-of-the-art Deep Learning library for Time Series and Sequences in Pytorch / fastai

3.2 书籍《时间序列分析及其应用》

Time Series Analysis and Its Applications

详细介绍可查看 【新书】时间序列分析及其应用:附 R 示例,第五版

3.3 时间序列预测:理论与实践

Forecasting Big Time Series: Theory and Practice | Tutorial for The Web Conference 2020

详细可查看 【CMU-Amazon】时间序列预测:理论与实践,379页ppt阐述大规模时序预测工具与方法

这里介绍了时间序列预测经典方法和现代方法,经典方法包括相似性搜索和索引、数字信号处理、线性预测方法和非线性预测,现代方法包括张量分析和深度学习。

代码仓库

GitHub - lovvge/Forecasting-Tutorials

3.4 相关视频

【专题4:时序分析技术在生产运营中的应用】1-2.2时序数据挖掘算法

【专题4:时序分析技术在生产运营中的应用】2.3-3时间序列预测方法和案例

视频对应课件在GitHub上

工业智能实战4-时序分析技术的应用.pdf

下次继续讨论时间序列数据分析相关话题,包括一些模型和工程技巧,敬请期待。

相关推荐
不吃香菜葱的程序猿2 分钟前
《Adversarial Sticker: A Stealthy Attack Method in the Physical World》论文分享(侵删)
深度学习·计算机视觉
meisongqing3 分钟前
【软件工程】机器学习多缺陷定位技术分析
人工智能·机器学习·软件工程·缺陷定位
高工智能汽车10 分钟前
大模型浪潮下,黑芝麻智能高性能芯片助力汽车辅助驾驶变革
人工智能·汽车
带娃的IT创业者17 分钟前
《AI大模型应知应会100篇》第62篇:TypeChat——类型安全的大模型编程框架
人工智能·安全
补三补四25 分钟前
随机森林(Random Forest)
人工智能·科技·算法·随机森林·机器学习
关山煮酒41 分钟前
【数据挖掘笔记】兴趣度度量Interest of an association rule
笔记·数据挖掘
dundunmm43 分钟前
【每天一个知识点】Dip 检验(Dip test)
人工智能·机器学习
Leo.yuan1 小时前
可视化数据图表怎么做?如何实现三维数据可视化?
大数据·信息可视化·数据挖掘·数据分析·数据服务
侃山1 小时前
pytorch nn.RNN demo
pytorch·rnn·深度学习
Francek Chen1 小时前
【现代深度学习技术】注意力机制07:Transformer
人工智能·pytorch·深度学习·神经网络·transformer