多变量时间序列异常检测

问题描述 投票:0回答:2

我有一个时间序列数据,如下所示的示例数据。正如您所看到的,我有四个事件以及不同时间之间每个事件发生的总数。 sample data

一小时后,我将获得每个事件的新发生次数,因此我想根据该事件的历史水平判断该数字是否异常。 我认为如果我为每个事件构建四个不同的回归,这很容易,但在现实生活中,我可能有很多事件,这会降低效率,所以我想知道解决这个问题的最佳方法是什么?我应该尝试什么型号?我读到了有关 KNN 的内容,但不需要分类标签,而我的情况却没有?

machine-learning time-series anomaly-detection
2个回答
1
投票

这是时间序列数据的示例,您可以尝试以下步骤(按此顺序):

  • 绘制数据以获得直观的理解
  • 使用简单的 z 分数异常检测
  • 使用滚动平均值和滚动标准异常检测
  • 基于ARMA的模型
  • STL(季节性分解黄土)
  • 基于LTSM的深度学习模型

我假设此 TS 数据是单变量,因为尚不清楚事件是否相关(您没有提供名称或上下文)。如果它们相关,您可以看到它们的相关程度(相关性和整合)并对相关性进行一些异常检测。


0
投票

在多元时间序列异常检测问题中,您必须考虑两件事:

  1. 每个时间序列内的时间依赖性。一般来说,你可以使用一些预测方法如AR、ARMA、ARIMA来预测你的时间序列。在此基础上,你可以将它的实际值与预测值进行比较,看看是否存在异常。
  2. 所有时间序列之间的空间依赖性。在固定时间点,比如t,您可以使用传统的异常检测方法,例如基于KNN、GMM、k-means、KDE、PCA的方法来执行异常检测。

最具挑战性的事情是同时考虑时间依赖性和空间依赖性。据了解,现有的基于机器学习的传统方法都无法完成这项工作。相比之下,一些基于深度学习的方法(例如[1][2])已被提出来完成这项工作。

© www.soinside.com 2019 - 2024. All rights reserved.