【问题标题】:Time Series Anomaly Detection Across Multiple Dimensions跨多个维度的时间序列异常检测
【发布时间】:2022-01-11 02:27:08
【问题描述】:

我正在从事一个项目,我的任务是查找不同维度(分类,即国家、职业等)和不同日期的异常数据(人数)。

以下是数据示例

count is count for people per day, country and occupation

我该怎么做?有什么推荐的 Python 库或模型吗?我找到了很多关于多元时间序列分析的教程,但我的数据不是多元时间序列,因为该数据集中的分类变量不依赖于时间。

【问题讨论】:

  • 人数取决于时间。为什么说它不是时间序列?
  • 这是一个时间序列。不是多元的,不是吗?我认为这是一个多时间序列问题,我不知道该怎么做。我有很多国家/职业。
  • 最简单的方法是将每个国家/职业视为独立的组 - 并仅在这些组内建模。然后每一个都是一个简单的单变量时间序列。在组之间利用数据要困难得多
  • 这是我目前所在的位置,但我希望找到一种更有效的方式,因为我有大约 7000 个职业和 25 个国家/地区。那是很多独立的团体。
  • 查看贝叶斯动态建模:跨时空共享信息的方法youtube.com/watch?v=LVPikT58meg

标签: python time-series anomaly-detection


【解决方案1】:

您可以尝试使用具有多变量时间序列预测的 LSTM、BiRNN、GRU。 您可以使用 tensorflow 或 pytorch 来构建模型。

【讨论】:

  • 您能否查看我对 Chiel 的回复并告诉我您的想法?
【解决方案2】:

Sklearn 有多种可能性。你可以看看Isolation Forest

【讨论】:

  • 我的问题是我有多个时间序列。同一日期可能有多个计数。如果您查看附图中的 12 月 4 日,您会看到有两个计数(每个国家/职业组合一个)。所以这是多个时间序列正确的吗?我是否需要为每个独特的组合实施单独的异常检测模型?我有大约 7000 个职业和 25 个国家。有没有更有效的方法?
  • 这完全取决于您的用例。我可以想象,在您的情况下,您希望按职业 id 或职业 id 和国家/地区 id 进行分组,以确定计数异常。实际上,我会手动确定几个异常(仅通过查看数据)并检查开箱即用的实现是否删除了这些异常。
  • 是的,我按国家和职业分组,但这些数据经常使用和更新,所以我想采用自动化方法而不是手动检查异常值。
  • 你在用 pandas 对吗?
  • 是的 Pandas,我的数据存储在 mySQL 表中
猜你喜欢
  • 2021-02-19
  • 1970-01-01
  • 2015-07-23
  • 2019-10-13
  • 2013-03-31
  • 2020-09-04
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多