9
我应该使用什么算法来检测时间序列的异常?
背景 我在网络运营中心工作,我们监视计算机系统及其性能。要监视的关键指标之一是当前连接到我们服务器的访问者/客户数量。为了使其可见,我们(Ops团队)收集了诸如时间序列数据之类的指标并绘制了图表。Graphite允许我们做到这一点,它有一个非常丰富的API,我可以用它来构建警报系统,以便在突然(主要是)突然下降和其他更改发生时通知我们的团队。目前,我已基于avg值设置了一个静态阈值,但是由于白天和一周中的不同负载(季节性因素),它不能很好地工作(存在很多假阳性)。 看起来像这样: 实际数据(一个度量标准的示例,时间范围为15分钟;第一个数字是用户数,第二个-时间戳): [{"target": "metric_name", "datapoints": [[175562.0, 1431803460], [176125.0, 1431803520], [176125.0, 1431803580], [175710.0, 1431803640], [175710.0, 1431803700], [175733.0, 1431803760], [175733.0, 1431803820], [175839.0, 1431803880], [175839.0, 1431803940], [175245.0, 1431804000], [175217.0, 1431804060], [175629.0, 1431804120], [175104.0, 1431804180], [175104.0, 1431804240], [175505.0, 1431804300]]}] 我要完成的工作 我创建了一个Python脚本,该脚本接收最近的数据点,将它们与历史平均值进行比较,并在发生突然变化或下降时发出警报。由于季节性因素,“静态”阈值无法正常运行,脚本会生成误报警报。我想提高警报算法的准确性,使其在不不断调整警报阈值的情况下工作。 我需要什么建议和发现的东西 通过谷歌搜索,我发现我正在寻找用于异常检测的机器学习算法(无监督算法)。进一步的调查表明,其中有很多,很难理解哪种情况适用于我的情况。由于我的数学知识有限,我无法阅读复杂的学者论文,并且正在寻找对该领域的初学者来说简单的东西。 我喜欢Python并且对R有点熟悉,因此很高兴看到这些语言的示例。请推荐一本好书或文章,这将有助于我解决问题。谢谢您的时间,请原谅我这么长时间的描述 有用的链接 类似问题: 时间序列和异常检测 使用Python进行时间序列异常检测 时间序列异常 时间序列异常检测算法 小波在基于时间序列的异常检测算法中的应用 我应该使用哪种算法? …