我想在R上对传感器数据的实时流进行异常检测。我想探讨使用Twitter anomalyDetection或anomalous。
我正在尝试考虑最有效的方法,因为一些在线消息来源表明R不适合实时异常检测。见https://anomaly.io/anomaly-detection-twitter-r。我应该使用stream
包来实现我自己的数据流源吗?如果我这样做,是否有任何"经验法则"关于我应该流多少数据以获得足够数量的数据(也许这就是我需要试验的)?有没有办法在数据库中而不是在应用程序中进行异常检测以加快速度?
答案 0 :(得分:5)
我的经验是,如果您想要实时异常检测,您需要应用在线学习算法(而不是批处理),理想情况是在收集/生成每个样本时运行。要做到这一点,您需要修改现有的开源以在在线模式下运行,并为每个处理的样本调整模型参数。 我不知道有一个开源软件包可以做到这一点。 例如,如果您使用正态分布计算一个非常简单的异常检测器,您需要做的就是更新每个指标的均值和方差。如果您希望模型具有自适应性,则需要添加遗忘因子(例如,指数遗忘),并控制"内存"的均值和方差。 另一种适合在线学习的算法是Holt-Winters。它有几个R实现,但你仍然需要让它在在线模式下运行才能实时。
我在大数据,分析& amp;给出了关于这个主题的讨论。应用机器学习 - 去年五月的以色列创新大会。该视频位于: https://www.youtube.com/watch?v=SrOM2z6h_RQ (免责声明:我是Anodot的首席数据科学家,Anodot是一家进行实时异常检测的商业公司。)