繁体   English   中英

如何找到数据的集体异常?

[英]How can I find collective anomalies for a data?

我有一个带有时间戳和值的数据。 我需要使用无监督算法找到集体异常。

#   DD  MM  YYYY    HH  mm  VALUE
0   14  02  2014    14  27  51.846
1   14  02  2014    14  32  44.508
2   14  02  2014    14  37  41.244
3   14  02  2014    14  42  48.568
4   14  02  2014    14  47  46.714
5   14  02  2014    14  52  44.986
6   14  02  2014    14  57  49.108
7   14  02  2014    15  02  40.470
8   14  02  2014    15  07  53.404
9   14  02  2014    15  12  45.400
10  14  02  2014    15  17  43.216
11  14  02  2014    15  22  49.720
12  14  02  2014    15  27  46.370
13  14  02  2014    15  32  43.756
14  14  02  2014    15  37  47.582
15  14  02  2014    15  42  40.738
16  14  02  2014    15  47  51.216

我曾尝试使用 X 均值的多阶段聚类来处理数值数据。 但是这里的时间戳似乎令人困惑。 任何帮助,将不胜感激。

也许聚类不是解决这个特定问题的最佳方法。 我喜欢尽可能保持简单。

对于您的问题,我建议使用指数移动平均值来平滑数据,测量滚动偏差,并在当前值与预期值相差太远时将条目标记为异常。

https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average

这是您的数据(标记为蓝色),上面绘制了指数移动平均值(alpha 为 0.5)。 使用指数移动平均线的优势变得显而易见,它允许数据逐渐变化,同时抑制任何突然的变化。

在此处输入图像描述

我会做什么:

  • 根据时间戳对数据进行排序
  • 应用指数移动平均线来获得曲线的连续近似值
  • 检查新/下一个值时,将其与 EMA 进行比较
  • 如果该值超出 [EMA - std_dev, EMA + std_dev] 那么您可以将其归类为异常

调整参数:

  • 阿尔法(在 EMA 中使用)
  • 使用标准开发? 或者也许先将 std_dev 与某个系数相乘?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM