基于增量模型的离群值检测

时间:2017-07-31 10:32:13

标签: java apache-flink outliers

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

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

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

我正在写一个小例子:

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

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

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

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

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

我可以使用哪种方法来获取此类行为?

1 个答案:

答案 0 :(得分:0)

一旦达到这个目的,就是让领导者将模型更新写入Kafka主题,并让A和B从Kafka读取这些模型更新(除了传感器流)。

更新:

一种用于检测非常适合流的异常值/异常的相当简单的算法是t-digest(是的,它可以递增地工作)。 This page from mapr会引导您获取更多信息。