Semi-supervised Anomaly Detection with an Application to Water Analytics

Semi-supervised Anomaly Detection with an Application to Water Analytics(ICDM'18)


概要

本文主要介绍了一种基于约束的聚类方法来进行异常检测。 * 半监督 * 结合水资源消耗实例进行分析 * 介绍了相关异常检测算法


方法

基于以下假设: 1. 距离类中心点越远的点越异常 2. 某个类的中心点离大多数中心点越远,越异常 3. 类的规模越小,越异常

评分函数: \[ \text {score}(f)=1-g\left(\frac{\text {point}_{-} d e v(f) \times \text {cluster}_{-} d e v(f)}{\text {cluster}_{-} \operatorname{size}(f)} ; \gamma\right) \]

点偏移:表示点距离某个类的中心点的偏移,并且用最大距离进行归一化表示 \[ \operatorname{point}_{-} \operatorname{dev}(f)=\left\{\begin{array}{ll}{\frac{d(f, c(f))}{\max _{f_{i} \in C(f)} d\left(f_{i}, c(f)\right)}} & {\text { if }|C(f)|>1} \\ {1} & {\text { otherwise }}\end{array}\right. \]

类偏移:表示某个类中心距离其他类中心的偏移量 \[ cluster\_dev (f)=\left\{\begin{array}{ll}{\frac{\min _{1 \leq i \leq n_{c} \wedge c(f) \neq c_{i}} d\left(c(f), c_{i}\right)}{\max _{1 \leq i, j \leq n_{c}} d\left(c_{i}, c_{j}\right)}} & {\text { if } n_{c}>1} \\ {1} & {\text { otherwise }}\end{array}\right. \]

类大小:表示当前类与已知最大类的比较结果 \[ \text { cluster }_{-} \operatorname{size}(f)=\frac{|C(f)|}{\max _{1 \leq i \leq n_{c}}\left|C_{i}\right|} \]

压缩函数:g, 用来将异常分数映射到\([0,1]\)区间中,较大的数值表示较可能的异常。 \[ g(x ; \gamma)=2^{-\frac{x^{2}}{\gamma^{2}}} \]


通过标签扩散更新分数

因为要最大化一个标签的价值,所以要通过标签扩散更新初始化异常分数 \[ \begin{array}{l}{S(f)=\frac{1}{Z(f)}\left[\operatorname{score}(f)+\alpha \sum_{f_{j} \in L_{a}} g\left(d\left(f, f_{j}\right) ; \eta\right)\right]} \\ {Z(f)=1+\alpha \sum_{f_{j} \in L} g\left(d\left(f, f_{j}\right) ; \eta\right)}\end{array} \]

这个公式的主要目的就是,让那些离标签数据近的数据,也获得标签的影响力,并且可以通过影响因子平衡影响力的结果