当前位置: 首页 > news >正文

工业大数据分析算法实战-day12

文章目录

  • day12
    • 时序分解
      • STL(季节性趋势分解法)
      • 奇异谱分析(SSA)
      • 经验模态分解(EMD)
    • 时序分割
      • Changpoint
      • TreeSplit
      • Autoplait
      • 有价值的辅助
    • 时序再表征

day12

今天是第12天,昨天主要是针对信号处理算法,可以提取出设备时序数据的时频特征为主,今日主要针对之前提到的8种算法中的时序分解、时序分割、时序再表征进行阐述

时序分解

工业上大多数设备通常都是呈现多尺度的效应,不同时间颗粒度上的规律和驱动因素各不相同,有些变化只在部分尺度上有所体现,比如常见的电力负荷预测,多半会将其分解为:趋势项(宏观经济和市场相关)、周期项(日历周期相关)、残余项(可以用天气、自回归项去拟合)。常见的时序分解的算法又:STL、奇异谱分析(SSA)、经验模态分解(EMD)、小波分析分解、SuperSmooth、传统的线性滤波等

STL(季节性趋势分解法)

核心功能:STL方法通过分解时间序列为 趋势(Trend)季节性(Seasonal)残差(Remainder),帮助我们理解数据的长期变化趋势、周期性波动以及随机噪声部分。这个方法特别适合季节性变化明显的时间序列。

算法流程

  1. 平滑趋势成分:使用局部加权回归(Loess)方法平滑时间序列,得到数据的 长期趋势
  2. 提取季节性:将趋势成分从原始数据中去除,然后通过计算季节性成分的平均值来提取 周期性的季节性波动
  3. 计算残差:将趋势和季节性成分从原始数据中减去,剩下的部分是 残差,通常是一些随机噪声或其他未捕捉到的模式。

举例:假设你在分析一年中每日的温度数据。STL可以帮助你分解出:

  • 一年内温度的 长期上升或下降趋势(如全球变暖趋势),
  • 每年季节性波动的 周期性波动(例如,夏季高温、冬季低温),
  • 余下的 异常波动和噪声(如某些天气突变)。

奇异谱分析(SSA)

核心功能:奇异谱分析(SSA)通过将时间序列转换为矩阵,利用矩阵的 奇异值分解(SVD) 技术,提取出时间序列中的趋势和周期成分。SSA适合从复杂的信号中提取出周期性成分,广泛应用于信号处理、降噪等领域。

算法流程

  1. 构造轨迹矩阵:将时间序列切分为多个重叠的小窗口,每个窗口包含一段时间的数据。将这些窗口按列组成一个矩阵。
    • 比如,你有一个长度为10的时间序列,你选择一个长度为5的窗口,构造一个包含5列的矩阵。
  2. 奇异值分解(SVD):对矩阵进行奇异值分解(SVD),得到奇异值和奇异向量。
    • 奇异值代表了不同时间成分的重要性,奇异向量代表了这些成分的模式。
  3. 重构信号:选择主要的奇异值和对应的奇异向量,重构出信号的 趋势 和 周期性成分
    • 例如,提取出信号的 低频成分(长期趋势)和 高频成分(周期波动)。
  4. 选择有用成分:根据需要,选择最能反映数据特征的成分,去除无关噪声。

举例:假设你在分析股票价格的波动。SSA可以帮助你从复杂的股市波动中提取出:

  • 长期趋势(例如股市上涨或下跌的趋势),
  • 周期性波动(例如股市在某个周期内的涨跌波动),
  • 以及 随机噪声(例如股市的突发性变化)。

经验模态分解(EMD)

核心功能:EMD是一种 自适应 的时序分解方法,通过不断提取时间序列中的 本征模态函数(IMF)趋势项,分解出多尺度的信号成分。EMD特别适用于非线性和非平稳的数据,能够动态适应数据的频率变化。

算法流程

  1. 局部极值提取:首先从时间序列中提取局部的极大值和极小值,然后通过这两个极值拟合出上下包络线。
  2. 计算局部均值:上下包络线的平均值即为当前信号的局部均值。
  3. 去除均值:将当前信号减去局部均值,得到 本征模态函数(IMF),这部分信号是频率较高的成分。
  4. 迭代过程:从原始数据中去除该IMF后,剩下的部分继续进行同样的过程,直到剩余部分为一个趋势项,即频率较低的成分。
  5. 分解完成:最终会得到若干个本征模态函数(IMF)和一个趋势项。

举例:假设你正在分析海洋波浪的数据。EMD能够帮助你将波浪信号分解成多个 频率不同的成分,其中:

  • 高频部分可能代表了快速波动(例如海面的小波动),
  • 低频部分代表了较大的趋势变化(如潮汐的变化)。
方法核心功能适用场景优点缺点
STL基于Loess回归分解为趋势、季节性、残差。季节性明显的时间序列(如气温、销售数据)。对非线性趋势和季节性变化自适应,灵活。对噪声敏感,可能导致过拟合。
SSA通过奇异值分解提取周期性和趋势成分。存在周期性波动的时间序列。对周期性信号提取强大,有较好去噪效果。对窗口选择敏感,计算复杂度高。
EMD自适应分解为多个本征模态函数(IMF)和趋势项。非线性、非平稳信号(如复杂的自然现象)。可以处理复杂的非线性信号,灵活。计算复杂,可能存在伪模态和端点效应。

时序分割

一般就常识而言,每个设备都有好几种运行的工况,在不同工况下,其数据特点可能是明显不同的,有的时候是存在明确的划分规则的,但是有的却没有细分或者就是自然运行产生的,为此希望通过数据中找到一定的规律,自动挖掘其阶段变化的分割点,这里会阐述3种经典的分割方式:Changpoint、TreeSplit、Autoplait

Changpoint

核心功能:Changpoint 方法主要用于时间序列数据的变化点检测。它的目标是找出时间序列中存在的结构变化点(例如数据分布、趋势或周期的变化),这些变化点通常表示系统运行状态的改变。在许多工程和物理系统中,不同的运行工况可能导致数据的统计特性发生变化,Changpoint 就是帮助识别这些变化点。

实现流程

  • 数据预处理:首先对原始时间序列进行预处理,包括去噪、平滑等操作。
  • 变化点检测:通过统计方法检测序列中潜在的变化点。常见的方法包括:
    • AMOC (Adaptive Monitoring of Change): AMOC 基于滑动窗口和统计检验来检测数据中的突变点,适用于实时监控。
    • SegNeigh:基于邻域分割的策略,通过对时间序列数据进行分段,找出变化点的位置。
  • 优化与验证:通常通过最小化误差或通过交叉验证来优化模型,确保所找到的变化点能够有效分割不同工况阶段。

举例:假设有一个生产设备的振动数据,随着工况的变化,振动频率会发生明显的改变。使用 Changpoint 方法,系统可以自动识别出不同的运行工况变化点。例如,在设备启动时,振动数据波动较大,而当设备稳定运行时,波动幅度明显减小,系统会通过 AMOC 方法发现这些变化,并自动划分为不同的阶段。

TreeSplit

核心功能:TreeSplit 方法通过对数据进行符号化处理,将连续的时间序列数据转化为离散的符号序列,然后利用特征提取和聚类算法识别不同的阶段。其主要优势是能够在数据具有复杂变化模式的情况下,自动从中提取出潜在的阶段性结构。

实现流程

  • 数据符号化:首先通过 HOG(Histogram of Oriented Gradients,方向梯度直方图)方法将时间序列的每个时间点转换为一个符号或类别。这一过程将连续的信号转换为离散的特征符号,简化数据的表示。
  • 窗口特征提取:然后,将时间序列按窗口划分,提取每个窗口中的特征。例如,可以提取每个窗口内的统计量,如均值、方差等。
  • 聚类:基于窗口特征,使用聚类算法(如GMM)对窗口进行聚类,从而确定时间序列中的不同阶段。聚类结果将帮助标定不同的运行阶段或工况。

举例:假设有一个电机的电流信号,电流信号在不同工况下会呈现不同的变化模式。通过 TreeSplit 方法,首先将电流信号的每个数据点用 HOG 方法转化为一个符号,然后按时间窗口提取出每个窗口内的特征(如均值、最大值等),再通过聚类算法发现电流信号的不同模式。最终,系统将自动将整个电流信号分割为多个阶段,例如启动阶段、稳态阶段和关停阶段。

Autoplait

核心功能:Autoplait 方法通过隐马尔可夫模型(HMM)最小描述长度(MDL) 准则自动分割时间序列数据。它的核心思想是使用隐马尔可夫模型建模时间序列的不同阶段,并通过最小描述长度原则选择最优的分割点,使得模型在描述数据时的复杂度最小。

实现流程

  • HMM 建模:首先使用隐马尔可夫模型(HMM)对时间序列进行建模。HMM 可以用来描述不同阶段之间的转移关系,每个隐状态代表时间序列的一个阶段。
  • 最小描述长度(MDL):在模型训练过程中,Autoplait 通过最小描述长度原则来选择合适的模型参数。MDL 旨在寻找能够有效描述数据的模型,同时避免过拟合。通过对比不同分割方案的描述长度,选择最能描述数据结构的分割点。
  • 自动分割:根据 HMM 模型和 MDL 原则,系统自动识别并分割时间序列中的不同阶段。

举例:假设我们有一个设备的温度监测数据,目标是根据这些数据自动分割出设备的不同工作阶段(例如启动、运行、关停等)。数据如下:

时间温度
025
130
250
360
458
540
630

在这个例子中,设备温度在时间 t=2 时发生了变化,假设在 t=0-2 是启动阶段,t=3-5 是运行阶段,t=6 是关停阶段。

步骤 1:HMM 建模:

  • Autoplait 会基于温度数据,假设有三个隐状态:S1(启动),S2(运行),S3(关停)。
  • 对于每个状态,HMM 会估计对应的温度分布(例如,高斯分布),并且会估计隐状态之间的转移概率。

步骤 2:MDL 评估分割点

  • Autoplait 会尝试不同的分割点,假设试验以下两种分割:
    • 方案 1:将数据分为两个阶段,分别是:S1(启动阶段)和 S2(运行阶段)。从 S2S3 的转移发生在 t=5
    • 方案 2:将数据分为三个阶段,分别是:S1(启动阶段),S2(运行阶段),S3(关停阶段)。从 S1S2 的转移发生在 t=2,从 S2S3 的转移发生在 t=5
  • Autoplait 会为每种分割方案计算其 模型复杂度和 数据拟合误差:
    • 方案 1:模型较简单,只有两个阶段,转移较少,但拟合误差可能较大。
    • 方案 2:模型较复杂,有三个阶段,拟合误差可能较小,但模型复杂度较高。

步骤 3:选择最佳分割点

  • 计算每种分割方案的 描述长度(包含模型复杂度和拟合误差)。
  • 描述长度较小的方案会被选为最终的分割方案。

最终,Autoplait 会选择 描述长度最小的分割点,假设是方案 2(即在 t=2t=5 进行分割),那么它就会将时间序列分为 启动、运行、关停 三个阶段。

有价值的辅助

时序分割实则属于无监督学习,聚类结果依赖于样本分布和距离函数定义,若产生有意义的结果一般会有以下5种方法

  • 提供手工标记:针对一个典型数据集合,人工打标模式
  • 典型模式样本库:算法根据其匹配相似度进行发掘
  • 改变样本分布:多提供感兴趣的区域样本
  • 业务知识粗分区:在每个分区进行细分聚类
  • 信号分解算法:将原始的时序数据进行分解,对主要成分进行模式聚类

时序再表征

对于高维数据,中间混杂着噪声和无关紧要的数据,为数据挖掘算法带来了一定的干扰,因此需要将原始数据进行再表征并降低维度。下图是一些时序再表征的方法,最上面第一个曲线是原始曲线,第二个曲线是时序再表征后的曲线,而下面陈列的是不同特征组成的曲线。

在这里插入图片描述

再表征算法的介绍和示例

算法核心功能示例
PAA (Piecewise Aggregate Approximation)PAA通过将时间序列划分为若干等长段,每段取该段的平均值来简化序列,达到数据降维的效果。这种方法可以有效减少数据点的数量,从而降低计算复杂度,适用于大规模数据分析和快速处理。将温度传感器数据每5分钟取一次温度,按每小时的数据段取平均值表示,得到简化后的时间序列。
PLA (Piecewise Linear Approximation)PLA通过将时间序列分成若干段,并用线性段来逼近每段数据,保留数据的趋势变化。相比PAA,PLA能够更好地近似数据的变化模式,但计算复杂度较高。用直线段拟合股票价格的波动趋势,每个线段对应价格变化的一部分,捕捉价格波动的走向。
PIP (Piecewise Information Preserving)PIP方法通过分段,每段选择具有代表性的信息点,从而最大限度地保留时间序列中的关键信息。它能更精确地保留数据的特征,适用于对数据精度有较高要求的任务。对心电图(ECG)信号进行分段,每段选取最具代表性的数据点,以保留信号的关键信息。
SMA (Simple Moving Average)SMA通过滑动窗口计算时间序列中每个数据点及其周围点的平均值,起到平滑波动的作用。它主要用于去除噪声并突出长期趋势,适用于稳定的数据。对每日气温数据使用3天滑动平均进行平滑,去除短期波动,显示长期趋势。
Auto EncoderAuto Encoder是基于神经网络的模型,通过编码器将输入数据压缩到低维空间,再通过解码器重建原始数据。它能够学习数据中的潜在特征,广泛用于复杂数据的降维和异常检测。对手写数字图像数据进行降维,通过自编码器提取低维特征并重建图像,进行数字识别。

相关文章:

工业大数据分析算法实战-day12

文章目录 day12时序分解STL(季节性趋势分解法)奇异谱分析(SSA)经验模态分解(EMD) 时序分割ChangpointTreeSplitAutoplait有价值的辅助 时序再表征 day12 今天是第12天,昨天主要是针对信号处理算…...

Hive其一,简介、体系结构和内嵌模式、本地模式的安装

目录 一、Hive简介 二、体系结构 三、安装 1、内嵌模式 2、测试内嵌模式 3、本地模式--最常使用的模式 一、Hive简介 Hive 是一个框架,可以通过编写sql的方式,自动的编译为MR任务的一个工具。 在这个世界上,会写SQL的人远远大于会写ja…...

LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测

LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测 目录 LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.LSTM-SVM时序预测 | Matlab基于LSTM…...

MacPorts 中安装高/低版本软件方式,以 RabbitMQ 为例

查询信息 这里以 RabbitMQ 为例,通过搜索得到默认安装版本信息: port search rabbitmq-server结果 ~/Downloads> port search rabbitmq-server rabbitmq-server 3.11.15 (net)The RabbitMQ AMQP Server ~/Downloads>获取二进制文件 但当前官网…...

CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击

Strong Transferable Adversarial Attacks via Ensembled Asymptotically Normal Distribution Learning 摘要-Abstract引言-Introduction相关工作及前期准备-Related Work and Preliminaries1. 黑盒对抗攻击2. SGD的渐近正态性 提出的方法-Proposed Method随机 BIM 的渐近正态…...

建投数据与腾讯云数据库TDSQL完成产品兼容性互认证

近日,经与腾讯云联合测试,建投数据自主研发的人力资源信息管理系统V3.0、招聘管理系统V3.0、绩效管理系统V2.0、培训管理系统V3.0通过腾讯云数据库TDSQL的技术认证,符合腾讯企业标准的要求,产品兼容性良好,性能卓越。 …...

群晖利用acme.sh自动申请证书并且自动重载证书的问题解决

前言 21年的时候写了一个在群晖(黑群晖)下利用acme.sh自动申请Let‘s Encrypt的脚本工具 群晖使用acme自动申请Let‘s Encrypt证书脚本,自动申请虽然解决了,但是自动重载一直是一个问题,本人也懒,一想到去…...

质量小议51 - 茧房

茧房:茧房是指蚕茧所建的住所或空间,由一个蚕丝囊完全包裹住的一个密封的空间。 -- CSDN创作助手 信息茧房 - 指通过互联网和数字技术,将个人封闭在一个虚拟的信息环境中,使其只接收来自特定渠道的信息,而屏蔽其他信息…...

【C++图论】2359. 找到离给定两个节点最近的节点|1714

本文涉及知识点 C图论 打开打包代码的方法兼述单元测试 LeetCode2359. 找到离给定两个节点最近的节点 给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,每个节点 至多 有一条出边。 有向图用大小为 n 下标从 0 开始的数组 edges 表示&#xff0c…...

重拾设计模式-外观模式和适配器模式的异同

文章目录 目的不同适配器模式:外观模式: 结构和实现方式不同适配器模式:外观模式: 对客户端的影响不同适配器模式:外观模式: 目的不同 适配器模式: 主要目的是解决两个接口不兼容的问题&#…...

51c自动驾驶~合集42

我自己的原文哦~ https://blog.51cto.com/whaosoft/12888355 #DriveMM 六大数据集全部SOTA!最新DriveMM:自动驾驶一体化多模态大模型(美团&中山大学) 近年来,视觉-语言数据和模型在自动驾驶领域引起了广泛关注…...

34 Opencv 自定义角点检测

文章目录 cornerEigenValsAndVecscornerMinEigenVal示例 cornerEigenValsAndVecs void cornerEigenValsAndVecs(InputArray src, --单通道输入8位或浮点图像OutputArray dst, --输出图像,同源图像或CV_32FC(6)int blockSize, --邻域大小值int ape…...

信创技术栈发展现状与展望:机遇与挑战并存

一、引言 在信息技术应用创新(信创)战略稳步推进的大背景下,我国信创技术栈已然在诸多关键层面收获了亮眼成果,不过也无可避免地遭遇了一系列亟待攻克的挑战。信创产业作为我国达成信息技术自主可控这一目标的关键一招&#xff0c…...

跟我学c++中级篇——C++中的缓存利用

一、缓存 学习过计算机知识的一般都知道缓存这个概念,大约也知道缓存是什么。但是如果是程序员,如何更好的利用缓存,可能就有很多人不太清楚了。其实缓存的目的非常简单,就是了更高效的操作数据。大家都听说过“局部性原理”&…...

二叉树_堆

目录 一. 树(非线性结构) 1.1 树的概念与结构 1.2 树的表示 二. 二叉树 2.1 二叉树的概念与结构 2.2 特殊的二叉树 2.3 二叉树的存储结构 三. 实现顺序结构的二叉树 3.1 堆的概念与结构 一. 树(非线性结构) 1.1 树的概念与结构 概念&#xff…...

word文档中有大量空白行删除不掉,怎么办?

现象: 分页之间的空白行太多了( 按回车没用。删除也删除不掉 ) 解决办法: 按ctrl a 全选这个文档右击鼠标,点击【段落】选择【换行和分页】,然后把【分页】里的选项全部勾掉,然后点击【确定】…...

python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django

windows首先安装rabbitmq 点击参考安装 1、环境介绍 Python 3.10.16 其他通过pip安装的版本(Django、pika、celery这几个必须要有最好版本一致) amqp 5.3.1 asgiref 3.8.1 async-timeout 5.0.1 billiard 4.2.1 celery 5.4.0 …...

构建高性能异步任务引擎:FastAPI + Celery + Redis

在现代应用开发中,异步任务处理是一个常见的需求。无论是数据处理、图像生成,还是复杂的计算任务,异步执行都能显著提升系统的响应速度和吞吐量。今天,我们将通过一个实际项目,探索如何使用 FastAPI、Celery 和 Redis …...

永磁同步电机无速度算法--全阶滑模观测器

一、原理介绍 在采用传统滑模观测器求取电机角度时通常存在系统抖振、低通滤波器导致角度相位滞后、角度的求取等问题。针对上述问题,本文采用全阶滑模观测器,该全阶滑模观测器具有二阶低通滤波器的特性,能有效滤除反电动势中的高频噪声&…...

部署开源大模型的硬件配置全面指南

目录 第一章:理解大型模型的硬件需求 1.1 模型部署需求分析 第二章:GPU资源平台 2.1 免费GPU资源 2.1.1 阿里云人工智能PAI 2.1.2 阿里天池实验室 2.1.3 Kaggle 2.1.4 Google Colab 2.2 付费GPU服务 2.2.1 AutoDL 2.2.2 Gpushare Cloud 2.2.3 Featurize 2.2.4 A…...

三、使用langchain搭建RAG:金融问答机器人--检索增强生成

经过前面2节数据准备后,现在来构建检索 加载向量数据库 from langchain.vectorstores import Chroma from langchain_huggingface import HuggingFaceEmbeddings import os# 定义 Embeddings embeddings HuggingFaceEmbeddings(model_name"m3e-base")#…...

Day13 用Excel表体验梯度下降法

Day13 用Excel表体验梯度下降法 用所学公式创建Excel表 用Excel表体验梯度下降法 详见本Day文章顶部附带资源里的Excel表《梯度下降法》,可以对照表里的单元格公式进行理解,还可以多尝试几次不同的学习率 η \eta η来感受,只需要更改学习率…...

计算机组成原理的学习笔记(5)--数据的表示与运算·其四 浮点数的储存和加减/内存对齐/大端小端

学习笔记 前言 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。 1. 浮点数的表示与运算 规格化数: 浮点数的存储格式为 ,其中: 为符号位。 为尾数,通常在0和1之间(规格化形式为1.xx…...

华为IPD流程6大阶段370个流程活动详解_第二阶段:计划阶段 — 86个活动

华为IPD流程涵盖了产品从概念到上市的完整过程,各阶段活动明确且相互衔接。在概念启动阶段,产品经理和项目经理分析可行性,PAC评审后成立PDT。概念阶段则包括产品描述、市场定位、投资期望等内容的确定,同时组建PDT核心组并准备项目环境。团队培训涵盖团队建设、流程、业务…...

如何使用 Flask 框架创建简单的 Web 应用?

Flask是一个轻量级的Web应用框架,用Python编写,非常适合快速开发和原型设计。 它提供了必要的工具和技术来构建一个Web应用,同时保持核心简单,不强制使用特定的工具或库。 二、创建第一个Flask应用 安装Flask 首先&#xff0c…...

将Minio设置为Django的默认Storage(django-storages)

这里写自定义目录标题 前置说明静态文件收集静态文件 使用django-storages来使Django集成Minio安装依赖settings.py测试收集静态文件测试媒体文件 前置说明 静态文件 Django默认的Storage是本地,项目中的CSS、图片、JS都是静态文件。一般会将静态文件放到一个单独…...

sed | 一些关于 sed 的笔记

sed 总结 sed 语法sed [-hnV] [-e<script>] [-f<script文件>] [文本文件]--- 参数&#xff1a;-e<script> 以选项中指定的script 来处理输入的文本文件-f<script文件> 以选项中指定的script 文件来处理输入的文本文件-n 禁用 pattern space 的默认输出…...

wtforms+flask_sqlalchemy在flask-admin视图下实现日期的修改与更新

背景&#xff1a; 在flask-admin 的modelview视图下实现自定义视图的表单修改/编辑是件不太那么容易的事情&#xff0c;特别是想不自定义前端view的情况下。 材料&#xff1a; wtformsflask_sqlalchemy 制作&#xff1a; 上代码 1、模型代码 from .exts import db from …...

AI的进阶之路:从机器学习到深度学习的演变(三)

&#xff08;承接上集&#xff1a;AI的进阶之路&#xff1a;从机器学习到深度学习的演变&#xff08;二&#xff09;&#xff09; 四、深度学习&#xff08;DL&#xff09;&#xff1a;机器学习的革命性突破 深度学习&#xff08;DL&#xff09;作为机器学习的一个重要分支&am…...

thinkphp 多选框

视图 <div class"form-group"><label for"c-flag" class"control-label col-xs-12 col-sm-2 col-md-4">{:__(Flag)}</label><div class"col-xs-12 col-sm-8 col-md-8"><!--formatter:off--><select …...