如何使用机器学习来寻找信号中相似区域的模式

数据挖掘 机器学习 时间序列 顺序模式挖掘
2022-03-11 00:43:15

我有一个很长的时间序列信号。这个信号通常很稳定,但是当传感器受到刺激时会发生变化,而且这种变化通常很短暂。我知道这可以使用标记的方法(如神经网络,CNN等)进行训练,但是标记需要很多时间,这是因为我的更改时间很短(大约4秒),而更改时间是不多。因此,我想使用随机数生成许多类似于模式的信号,然后在执行检测之前使用自动编码器(或特征提取方法)来学习特征。

我想问的是我的想法是否有任何错误,或者任何人都可以提供一些想法或意见。多谢!

模式不会很明显,但像这样: 在此处输入图像描述

我的想法: 在此处输入图像描述

3个回答

如果您的信号像您展示的那样遵循简单的方形模式,为什么不使用更简单的解决方案呢?一些平滑以减少噪声(例如:卡尔曼滤波器)+ 导数函数(例如:numpy 中的 diff 函数)来检测起伏应该足以检测信号模式,包括它们的持续时间。

寻找“相似”信号的一个很好的包是 Python 的矩阵配置文件。

如果我正确理解了您的问题,那么它将使您免于创建随机信号来训练分类器。此外,在包中,您可以提供窗口长度,因此假设您的信号是均匀采样的,那么您可以提供最大持续时间并且它应该可以工作。它是专门为长信号设计的,据我所知,它是基于自相关的。

https://matrixprofile.docs.matrixprofile.org/

https://matrixprofile.docs.matrixprofile.org/examples/ECG_Annotation_Vectors.html

动态时间规整 (DTW) 是在不同信号中查找相关块的好方法。

https://dynamictimewarping.github.io/