实时异常检测

Real-time anomaly detection

我想在 R 中对实时传感器数据流进行异常检测。我想探索使用 Twitter anomalyDetection or anomalous

我正在考虑最有效的方法,因为一些在线资源表明 R 不适合实时异常检测。参见 https://anomaly.io/anomaly-detection-twitter-r。我应该使用 stream 包来实现我自己的数据流源吗?如果我这样做,是否有任何 "rule-of-thumb" 关于我应该流式传输多少数据才能获得足够数量的数据(也许这就是我需要试验的)?有没有什么方法可以在数据库中而不是在应用程序中进行异常检测来加快速度?

我的经验是,如果你想要实时异常检测,你需要应用在线学习算法(而不是批处理),理想情况下 运行ning 在每个样本上,因为它是 collected/generated。为此,您需要在在线模式下将现有的开源修改为 运行,并为每个处理的样本调整模型参数。 我不知道有一个开源包可以做到这一点。 例如,如果您正在计算一个非常简单的异常检测器,使用正态分布,您需要做的就是使用到达的每个样本更新每个指标的均值和方差。如果希望模型具有自适应性,则需要添加遗忘因子(例如指数遗忘),并控制均值和方差的"memory"。 另一种适用于在线学习的算法是 Holt-Winters。它有几个 R 实现,尽管您仍然需要在在线模式下 运行 使其成为实时的。

去年 5 月,我在大数据、分析和应用机器学习 - 以色列创新大会上就此主题发表了演讲。视频在: https://www.youtube.com/watch?v=SrOM2z6h_RQ (免责声明:我是 Anodot 的首席数据科学家,Anodot 是一家从事实时异常检测的商业公司)。