基于增量模型的异常值检测



我正在处理流数据(使用Java和Apache Flink(,我想执行异常值检测。我有一个网络,每个传感器接收一个流。 然后,他们将流的采样版本发送到"leader"节点,该节点组合所有样本并生成全局模型。

之后,它将全局模型发送给每个孩子。孩子们将使用此模型来检测异常值。 这必须以连续的方式发生(即,每次领导者收到x个样本时,它都会更新模型并广播它(。

我在论文/方法中遇到的问题是,为了构建模型,我需要拥有所有数据,而这是不可能的。领导者存储它收到的所有样本也是不可行的。

我正在写一个小例子:

传感器 A 接收一些数据并将其发送给领导者

传感器 B 接收一些数据并将其发送给领导者

领导者使用收到的值来构建广播的模型。

两个传感器接收其他数据,对于每个值,它们使用接收到的模型来执行异常值检测。 然后他们将新数据发送给领导者。

领导者更新模型并将新更新的模型发送给子模型。

我可以使用哪种方法让我获得此类行为?

一旦这样做,就会让领导者将模型更新写入 Kafka 主题,并让 A 和 B 从 Kafka 读取这些模型更新(除了他们的传感器流(。

更新:

一种相当简单的检测异常值/异常的算法非常适合流是 t-digest(是的,它是增量工作的(。来自mapr的此页面将引导您了解更多信息。

相关内容

  • 没有找到相关文章