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

news2025/2/19 9:59:21

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299095.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Streamlit与Qlib:量化投资策略可视化实战

Streamlit与Qlib&#xff1a;量化投资策略可视化实战 1. 项目背景 在量化投资领域&#xff0c;数据可视化是理解和展示投资策略的关键。本文将详细介绍如何使用Streamlit和Qlib构建一个交互式的量化投资策略可视化应用。 2. 环境准备 2.1 安装依赖 # 安装必要的库 pip ins…

Ceph集群搭建2025(squid版)

squid版本维护年限 apt install -y cephadmecho >> "deb http://mirrors.163.com/ceph/debian-squid/ bookworm main" echo >> "deb-src http://mirrors.163.com/ceph/debian-squid/ bookworm main"#安装源 cephadm install #开始初始化一个最…

机器学习实战(3):线性回归——预测连续变量

第3集&#xff1a;线性回归——预测连续变量 在机器学习的世界中&#xff0c;线性回归是最基础、最直观的算法之一。它用于解决回归问题&#xff0c;即预测连续变量&#xff08;如房价、销售额等&#xff09;。尽管简单&#xff0c;但线性回归却是许多复杂模型的基石。今天我们…

【漫话机器学习系列】093.代价函数和损失函数(Cost and Loss Functions)

代价函数和损失函数&#xff08;Cost and Loss Functions&#xff09;详解 1. 引言 在机器学习和深度学习领域&#xff0c;代价函数&#xff08;Cost Function&#xff09;和损失函数&#xff08;Loss Function&#xff09;是核心概念&#xff0c;它们决定了模型的优化方向。…

LabVIEW 天然气水合物电声联合探测

天然气水合物被认为是潜在的清洁能源&#xff0c;其储量丰富&#xff0c;预计将在未来能源格局中扮演重要角色。由于其独特的物理化学特性&#xff0c;天然气水合物的探测面临诸多挑战&#xff0c;涉及温度、压力、电学信号、声学信号等多个参数。传统的人工操作方式不仅效率低…

【记忆化搜索】最长递增子序列

文章目录 300. 最长递增子序列解题思路&#xff1a;递归 -> 记忆化搜索 300. 最长递增子序列 300. 最长递增子序列 ​ 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 ​ 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&am…

Tomcat的升级

一、为什么Tomcat需要升级 在生产环境中&#xff0c;我们都会指定对应的Tomcat版本进行安排配置&#xff0c;但是由于Tomcat厂商对于小版本的更新迭代会将一些Bug修复&#xff0c;这个时候在生产中出现问题/预防出现问题&#xff0c;可以通过小版本的升级解决前提&#xff1a;…

4-制作UI

创建模块文件夹 Unity编辑器->Tools->YIUI自动化工具&#xff0c;在新增模块名称那里输入模块名字并点击创建。便可看到在GameRes/YIUI文件夹下有新建的文件夹与内容了。里面包含图集、预制体、Sprites。如果进行预制体的修改&#xff0c;则需要双击进入再修改&#xff0…

vue3+element-plus中的el-table表头和el-table-column内容全部一行显示完整(hook函数)

hook函数封装 export const useTableColumnWidth _this > {const { refTable } _thisconst columnWidthObj ref()const getTableColumnWidth cb > {nextTick(() > {columnWidthObj.value {}// 获取行rowsconst tableEle refTable?.refBaseTable?.$elif (!tab…

DeepSeek 助力 Vue 开发:打造丝滑的开关切换(Switch)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

使用Python爬虫实时监控行业新闻案例

目录 背景环境准备请求网页数据解析网页数据定时任务综合代码使用代理IP提升稳定性运行截图与完整代码总结 在互联网时代&#xff0c;新闻的实时性和时效性变得尤为重要。很多行业、技术、商业等领域的新闻都可以为公司或者个人发展提供有价值的信息。如果你有一项需求是要实时…

语言大模型基础概念 一(先了解听说过的名词都是什么)

SFT&#xff08;监督微调&#xff09;和RLHF&#xff08;基于人类反馈的强化学习&#xff09;的区别 STF&#xff08;Supervised Fine-Tuning&#xff09;和RLHF&#xff08;Reinforcement Learning from Human Feedback&#xff09;是两种不同的模型训练方法&#xff0c;分别…

DeepSeek v3 技术报告阅读笔记

注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解&#xff0c;为笔记/大纲性质而非教程&#xff0c;建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心&#xff1a; MLA 高效推理DeepSeekMOE 更…

GESP2024年9月认证C++七级( 第三部分编程题(1)小杨寻宝)

参考程序&#xff1a; #include <bits/stdc.h> using namespace std; const int N 1e510; vector<int> g[N]; // 图的邻接表 int col[N], dep[N], has[N];// 深度优先遍历&#xff0c;计算每个节点的深度 void dfs(int x, int fa) {dep[x] dep[fa] 1; // 计算…

解锁电商数据宝藏:淘宝商品详情API实战指南

在电商蓬勃发展的今天&#xff0c;数据已成为驱动业务增长的核心引擎。对于商家、开发者以及数据分析师而言&#xff0c;获取精准、实时的商品数据至关重要。而淘宝&#xff0c;作为国内最大的电商平台&#xff0c;其海量商品数据更是蕴含着巨大的价值。 本文将带你深入探索淘…

webshell通信流量分析

环境安装 Apatche2 php sudo apt install apache2 -y sudo apt install php libapache2-mod-php php-mysql -y echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo ufw allow Apache Full 如果成功访问info.php&#xff0c;则环境安…

在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址

rt_list_entry (rt_container_of)宏定义&#xff1a; /*** rt_container_of - return the start address of struct type, while ptr is the* member of struct type.*/ #define rt_container_of(ptr, type, member) \((type *)((char *)(ptr) - (unsigned long)(&((type *…

趣味魔法项目 LinuxPDF —— 在 PDF 中启动一个 Linux 操作系统

最近&#xff0c;一位开源爱好者开发了一个LinuxPDF 项目&#xff08;ading2210/linuxpdf: Linux running inside a PDF file via a RISC-V emulator&#xff09;&#xff0c;它的核心功能是在一个 PDF 文件中启动并运行 Linux 操作系统。它通过巧妙地使用 PDF 文件格式中的 Ja…

【Linux】Socket编程—TCP

&#x1f525; 个人主页&#xff1a;大耳朵土土垚 &#x1f525; 所属专栏&#xff1a;Linux系统编程 这里将会不定期更新有关Linux的内容&#xff0c;欢迎大家点赞&#xff0c;收藏&#xff0c;评论&#x1f973;&#x1f973;&#x1f389;&#x1f389;&#x1f389; 文章目…

新数据结构(9)——Java异常体系

异常的种类 程序本身通常无法主动捕获并处理错误&#xff08;Error&#xff09;&#xff0c;因为这些错误通常表示系统级的严重问题&#xff0c;但程序可以捕获并处理异常&#xff08;Excrption&#xff09;&#xff0c;而Error则被视为一种程序无法或不应尝试恢复的异常类型。…