在加速度计数据的大小中检测关闭状态?

数据挖掘 机器学习 时间序列 聚类 多标签分类
2021-09-24 16:06:38

我有一个单变量时间序列信号。它是连接到发动机的加速度计的大小。

我需要创建一个算法来检测关闭状态,请参见下图中的黑线。信号的其余部分由空闲和活动状态组成。空闲状态看起来略高,活动状态往往有巨大的尖峰,通常比空闲和关闭的平均值更高。

虽然这很简单,但根据发动机的尺寸和传感器与振动的接近程度,几台机器具有不同的平均值。因此,使用阈值的想法将无济于事。

我考虑过 K-Means 算法。当三个状态可用时,它工作得很好。当一两个不存在时,结果会显着下降,因为它试图找到数据中不存在的两个类。

我试过隐马尔可夫模型。他们看起来很有希望,不幸的是,他们训练自己识别状态的分布,这些状态将再次从一台机器变为另一台机器。

我想到了使用标准化。但我很犹豫,因为关闭状态的平均值会相应改变。

您推荐哪些无监督或半无监督方法来检测关闭/空闲/开启状态?

在此处输入图像描述

1个回答

由于您的“行为良好”数据,这似乎非常简单。

最简单的

天真的方法是检查直方图!如您所见,OFF 状态通常具有较低的幅度。从您上面的标记数据中了解该幅度级别,您可以对直方图进行阈值处理。

为什么天真?:因为您看到误报(参见下午 4 点到 6 点之间的图。有一个类似于 OFF 的短状态,它不是 OFF)和误报(在晚上 9 点之后,您会立即看到 OFF 状态的峰值,其幅度远远超过 OFF )

是什么改进了这种幼稚的方法?

  • 考虑历史(学习顺序行为)
  • 提取更复杂的特征(例如在频域中使用 FFT 或时频域中使用STFT小波等)
  • 应用异常检测阶段,帮助您正确判断发生在晚上 9 点的峰值(我认为这几乎是异常情况)

有点复杂

提取时频特征(STFTWavelet等),如果您有标记数据,请将它们提供给分类器,如果您不使用这些特征进行一些EDA以查看那里是否可能进行聚类。根据你的数据,我很有信心你会得到很好的结果。

更复杂

我想递归分析将是一个很好的选择(对你来说很有趣!)。特别是如果信号的动态是非平稳的(许多信号在实践中)。维基百科页面或此页面中解释的方法并不复杂。

祝你好运!