Local Outlier Factor

LOF: Identifying Density-Based Local Outliers

1 分析当下算法的问题

Outlier的定义:Hawkins[1]:

一个异常值(outlier)是一种与其他观察结果相差太多的一种观察结果,会让人怀疑该值是否是由不同的机制产生。

全文中,使用d(p,q)d(p,q)d(p,q)来代表对象ppp和qqq之间的距离。对于一个对象集合我们使用CCC来表示。为了简化我们的表示,使用d(p,C)d(p,C)d(p,C)来表示ppp和CCC中对象qqq之间的最小距离,也就是说,d(p,C)=min⁡{d(p,q)∣q∈C}d(p,C)=\min \{d(p,q)|q\in C\}d(p,C)=min{d(p,q)∣q∈C}

Outlier的定义:DB(pct,dmin)-Outerlier

集合DDD中一个对象ppp是一个DB(pct,dmin)−outlierDB(pct,dmin)-outlierDB(pct,dmin)−outlier的前提是DDD中至少有占百分比pctpctpct的对象距离ppp的距离远于距离dmindmindmin,也就是说集合{q∈D∣d(p,q)≤dmin}\{q\in D|d(p,q)\leq dmin\}{q∈D∣d(p,q)≤dmin}的基数小于等于(100−pct)%×∣D∣(100-pct)\% \times |D|(100−pct)%×∣D∣

上述定义只能找出具体类型的异常对象,因为定义采取了一种在整个数据集上的全局观点,这些异常对象可以被视为“全局异常”。然而,对于很多现实世界中具有复杂结构的数据集,异常往往是另一种类型。这些异常对象与其相邻对象相比是离群的,特别是考虑到相邻对象的密度。这些异常会被认为是“本地”异常。

考虑到图1中的例子,这是一个简单的包含502个对象的二维数据集。第一个聚簇C1C_1C1​有400个对象,而第二个聚簇C2C_2C2​有100个对象,以及剩下的对象o1o_1o1​和o2o_2o2​。在这个例子中,C2C_2C2​比C1C_1C1​更密集。根据Hawkins’的定义,o1o_1o1​和o2o_2o2​都是异常的,C1C_1C1​和C2C_2C2​中的不应该是。根据我们对“本地”异常的定义,我们希望o1o_1o1​和o2o_2o2​都是异常的,但是在基于距离的架构下,只有o1o_1o1​是合理的DB(pct,dminpct,dminpct,dmin)-outlier。如果C1C_1C1​中的每个对象qqq与其最近的邻居的距离都大于o2o_2o2​和C2C_2C2​之间的距离(也就是d(o2,C2)d(o_2,C_2)d(o2​,C2​)),我们事实上可以说没有合适的pctpctpct和dmindmindmin使得o2o_2o2​是DB(pct,dminpct,dminpct,dmin)-outlier而C1C_1C1​中的项目不是。

2 本地异常的规则化定义

以上的例子说明了DB(pct,dminpct,dminpct,dmin)-outliers持有的全局观点是有意义的,并且在特定的情况下是完全可用的,但是对于存在不同密度簇的一般情况是不适合的。目前的关键情况在于,离群情况不应该是一个二元值。相反,我们赋予每个对象一个离群因子,这是对象的离群程度。

定义3:(对象ppp的kkk-distance)
对于任何一个正整数kkk,k−distance(p)k-distance(p)k−distance(p)被定义为ppp和一个对象o∈Do\in Do∈D 之间的距离d(p,o)d(p,o)d(p,o),满足如下条件:
(i) 除了ppp以外,至少有kkk个对象o′∈D∖{p}o'\in D\setminus\{p\}o′∈D∖{p}使得d(p,o′)≤d(p,o)d(p,o')\leq d(p,o)d(p,o′)≤d(p,o)
(ii) 除了ppp以外,最多有k−1k-1k−1个对象o′∈D∖{p}o'\in D\setminus\{p\}o′∈D∖{p}使得d(p,o′)<d(p,o)d(p,o')< d(p,o)d(p,o′)<d(p,o)


定义4:(对象ppp的kkk-distance neighborhood)
给定ppp的kkk-distance,kkk-distance neighborhood包含着所有的离ppp的距离小于或者等于kkk-distance的对象,也就是说Nk-distance(p)={q∈D∖{p}∣d(p,q)≤k-distance(p)}N_{k \text{-}distance(p)}=\{q\in D\setminus\{p\}|d(p,q)\leq k\text{-distance(p)}\}Nk-distance(p)​={q∈D∖{p}∣d(p,q)≤k-distance(p)}
qqq就是ppp的kkk-nearest neighbors,即qqq的kkk最近邻。

之后我们用Nk(p)N_k(p)Nk​(p)来代表Nk-distance(p)(p)N_{k\text{-}distance(p)}(p)Nk-distance(p)​(p)。


定义5: (ppp到ooo的可达距离)
设kkk为自然数。对象ppp到对象ooo的可达距离定义为:
reach-distk(p,o)=max⁡{k-distance(o),d(p,o)}reach\text{-}dist_k(p,o)=\max\{k\text{-distance}(o),d(p,o)\}reach-distk​(p,o)=max{k-distance(o),d(p,o)}

图2解释了k=4k=4k=4的可达距离。如果对象ppp远离ooo(如图中的p2p_2p2​),那么两个对象之间的可达距离就是它们的真实距离。然而,如果它们“足够”近(如图中的p1p_1p1​),真实距离就会被换成k-distance(o)k\text{-distance(o)}k-distance(o)。这样做,对于所有接近ooo的对象ppp,ppp到ooo的距离函数d(p,o)d(p,o)d(p,o)的统计波动会大幅下降。平滑效果的力度可以被参数kkk控制。kkk越大,在同一邻域内的物体的可达性距离就越相似。

到目前位置,我们已经定义了k-distancek\text{-distance}k-distance和reach−distk(p)reach-dist_k(p)reach−distk​(p),其中kkk是任意正整数。但是为了定义异常,我们集中于一个kkk的特定实例,退回到基于密度的聚簇中。典型的基于密度的聚簇算法中都有两个参数来获得密度:
(i) MinPtsMinPtsMinPts来标明对象的最小数量;
(ii) 指定体积的参数

这两个参数决定了一个聚簇算法使用的密度阈值。也就是说如果物体或者区域的邻域密度超过了这个阈值,它们就会连接起来。然而,为了检测基于密度的异常,将不同对象集合的密度进行对比是必要的,这意味着我们要动态地决定对象集合的密度。因此我们保持MinPtsMinPtsMinPts作为仅有的参数,并且使用reach-distMinPts(p,o),o∈NMinPts(p)\text{reach-dist}_{MinPts}(p,o), o\in N_{MinPts}(p)reach-distMinPts​(p,o),o∈NMinPts​(p)来衡量体积大小,并用来计算对象ppp的邻域密度。

定义6: (对象ppp的本地可达密度)
local reachability density:lrdMinPts(p)=1/(∑o∈NMinPts(p)reach−distMinPts(p,o)∣NMinPts(p)∣)lrd_{MinPts(p)}=1/(\frac{\sum\limits_{o\in N_{MinPts(p)}}reach-dist_{MinPts}(p,o)}{|N_{MinPts(p)}|})lrdMinPts(p)​=1/(∣NMinPts(p)​∣o∈NMinPts(p)​∑​reach−distMinPts​(p,o)​)

从直觉上来讲,ppp的本地可达性密度是基于ppp的MinPtsMinPtsMinPts-nearest neighbors平均可达性距离的倒数(⭐注意,reach-distMinPts(p,o)reach\text{-}dist_{MinPts}(p,o)reach-distMinPts​(p,o)是计算ooo到ppp的可达距离,比较的是ppp是否在ooo的可达范围内,不是ppp到ooo)。注意到如果所有的可达性距离之和是0的话,本地密度可以达到∞\infty∞。这可能是因为至少有MinPtsMinPtsMinPts个点,虽然与ppp不同,但是却与ppp共享一个坐标。为了简化,我们不会显式处理这个情况,而是假设没有叠加的点(为了解决这个问题,可以让我们的邻域思想基于kkk-distinct-distance)。

定义7: (本地)异常因子
local outlier factor:LOFMinPts(p)=∑o∈NMinPts(p)lrdMinPts(o)lrdMinPts(p)∣NMinPts(p)∣LOF_{MinPts}(p)=\frac{\sum\limits_{o\in N_{MinPts(p)}}\frac{lrd_{MinPts(o)}}{lrd_{MinPts}(p)}}{|N_{MinPts}(p)|}LOFMinPts​(p)=∣NMinPts​(p)∣o∈NMinPts(p)​∑​lrdMinPts​(p)lrdMinPts(o)​​​

异常因子用来计算对象ppp的异常程度。这是ppp的本地可达性密度和ppp的MinPtsMinPtsMinPts个最近邻的密度比值的平均数。可以看出,ppp的本地可达性密度越低,ppp的MinPtsMinPtsMinPts最近邻的本地可达性密度越高,ppp的LOFLOFLOF的值也就越高。

3 本地异常的性质分析

对于聚簇中的大部分对象ppp,其LOFLOFLOF值都接近1。我们提出了一般性的理论来给出LOFLOFLOF的上限和下限。此外,我们分析了给出的边界的紧凑性。我们说明了对于重要的类别,边界是很紧凑的。然而对于其他的类别,边界并不是那么紧凑。我们采用别的理论来给出更好的边界。

3.1 在聚簇深处对象的LOFLOFLOF

通过图1,我们引出本地异常的思想。接下来将要证明大部分C1C_1C1​中的对象的LOFLOFLOF大约为1,这表明他们不能被标记为“离群”或者“异常”。

引理1:
设CCC为对象集合,让reach-dist-minreach\text{-}dist\text{-}minreach-dist-min代表CCC中的对象最小可达性距离,也就是说,reach-dist-min=min⁡{reach-dist(p,q)∣p,q∈C}reach\text{-}dist\text{-}min=\min\{reach\text{-}dist(p,q)|p,q\in C\}reach-dist-min=min{reach-dist(p,q)∣p,q∈C}。类似地,让reach-dist-maxreach\text{-}dist\text{-}maxreach-dist-max表示CCC中对象的最大可达性距离。让ϵ\epsilonϵ定义为(reach-dist-maxreach-dist-min−1)(\frac{reach\text{-}dist\text{-}max}{reach\text{-}dist\text{-}min}-1)(reach-dist-minreach-dist-max​−1)。
对于所有的CCC中的对象ppp,如下:
(i) (在ppp很深入集合CCC的情况下)ppp所有的MinPts-nearestMinPts\text{-nearest}MinPts-nearest近邻qqq都属于集合CCC,
(ii) 同样,qqq所有的MinPts-nearestMinPts\text{-nearest}MinPts-nearest近邻ooo都属于集合CCC,
有:(1ϵ+1)≤LOF(p)≤(ϵ+1)(\frac{1}{\epsilon + 1})\leq LOF(p) \leq (\epsilon + 1)(ϵ+11​)≤LOF(p)≤(ϵ+1)


证明:
根据定义6,我们可以知道ppp的本地可达性密度最大为1reach-dist-min\frac{1}{reach\text{-}dist\text{-}min}reach-dist-min1​,最小为1reach-dist-max\frac{1}{reach\text{-}dist\text{-}max}reach-dist-max1​,对于ppp所有的MinPts-nearestMinPts\text{-nearest}MinPts-nearest近邻qqq也是如此。那么LOF(p)≤reach-dist-maxreach-dist-minLOF(p)\leq \frac{reach\text{-}dist\text{-}max}{reach\text{-}dist\text{-}min}LOF(p)≤reach-dist-minreach-dist-max​,同时LOF≥reach-dist-minreach-dist-maxLOF\geq \frac{reach\text{-}dist\text{-}min}{reach\text{-}dist\text{-}max}LOF≥reach-dist-maxreach-dist-min​,也就是(1ϵ+1)≤LOF(p)≤(ϵ+1)(\frac{1}{\epsilon + 1})\leq LOF(p) \leq (\epsilon + 1)(ϵ+11​)≤LOF(p)≤(ϵ+1)

从直觉上讲,CCC对应着一个聚簇。让我们假设一个对象ppp在聚簇的内部,这意味着ppp所有的MinPts-nearestMinPts\text{-nearest}MinPts-nearest近邻qqq都在CCC里面,同时qqq的所有MinPts-nearestMinPts\text{-nearest}MinPts-nearest近邻也都在CCC里面。很紧凑的时候,所有点都互相在对方的MinPts-nearestMinPts\text{-nearest}MinPts-nearest近邻聚簇里面,或者很接近,那么ϵ\epsilonϵ就接近0,也就是说LOFLOFLOF接近1。

3.2 LOF的一般上界和下界

上面的引理1显示了LOF的一个基本性质,即对于聚簇深处的对象,它们的LOF接近于1,不应该被标记为局部异常值。那么那些靠近聚簇外围的对象呢?那么那些在聚簇之外的对象呢,比如图1中的o2呢?我们能得到这些物体的LOF的上、下界吗?

这里定义:
directmin(p)=min⁡{reach-dist(p,q)∣q∈NMinPts(p)}directmax(p)=max⁡{reach-dist(p,q)∣q∈NMinPts(p)}indirectmin(p)=min⁡{reach-dist(q,o)∣q∈NMinPts(p)and o∈NMinPts(q)}indirectmax(p)=max⁡{reach-dist(q,o)∣q∈NMinPts(p)and o∈NMinPts(q)}direct_{min}(p)=\min \{ reach\text{-}dist(p,q)|q\in N_{MinPts}(p)\}\\direct_{max}(p)=\max \{ reach\text{-}dist(p,q)|q\in N_{MinPts}(p)\}\\ indirect_{min}(p)=\min \{ reach\text{-}dist(q,o)|q\in N_{MinPts}(p)\text{ and } o\in N_{MinPts}(q)\}\\ indirect_{max}(p)=\max \{ reach\text{-}dist(q,o)|q\in N_{MinPts}(p)\text{ and } o\in N_{MinPts}(q)\}directmin​(p)=min{reach-dist(p,q)∣q∈NMinPts​(p)}directmax​(p)=max{reach-dist(p,q)∣q∈NMinPts​(p)}indirectmin​(p)=min{reach-dist(q,o)∣q∈NMinPts​(p) and o∈NMinPts​(q)}indirectmax​(p)=max{reach-dist(q,o)∣q∈NMinPts​(p) and o∈NMinPts​(q)}

理论1:
ppp属于数据集DDD,并且1≤MinPts≤∣D∣1\leq MinPts\leq |D|1≤MinPts≤∣D∣。
directmin(p)indirectmax(p)≤LOF(p)≤directmax(p)indirectmin(p)\frac{direct_{min}(p)}{indirect_{max}(p)}\leq LOF(p) \leq \frac{direct_{max}(p)}{indirect_{min}(p)}indirectmax​(p)directmin​(p)​≤LOF(p)≤indirectmin​(p)directmax​(p)​

理论1有以下特点:

  • 首先,定理1适用于任何对象p,而不局限于集群深处的对象,
  • 其次,即使是对于簇内深处的物体,定理1给出的界也可以比引理1给出的界更紧密。

3.3 边界的紧密性

之前我们已经讨论了如何计算LOFLOFLOF的边界,但是计算的边界的紧密性如何?如果我们用LOFmaxLOF_{max}LOFmax​来代表上界directmax/indirectmindirect_{max}/indirect_{min}directmax​/indirectmin​,使用LOFminLOF_{min}LOFmin​来代表下界directmin/indirectmaxdirect_{min}/indirect_{max}directmin​/indirectmax​,它们之间的差距有多大?

这里我们使用direct(p)direct(p)direct(p)来代表directmin(p)direct_{min}(p)directmin​(p)和directmax(p)direct_{max}(p)directmax​(p)两者的平均值,indect(p)indect(p)indect(p)也是同样的操作。为了简化,将这两个值简写成directdirectdirect和indirectindirectindirect。

为了易于理解,这里我们设置相同程度的直接邻域和间接邻域的可达性距离的波动程度:
(directmax−directmin)/direct=(indirectmax−indirectmin)/indirect(direct_{max}-direct_{min})/direct=(indirect_{max}-indirect_{min})/indirect(directmax​−directmin​)/direct=(indirectmax​−indirectmin​)/indirect

接着我们定义pctpctpct,如果pct=x%pct=x\%pct=x%,则有directmax=direct∗(1+x%)direct_{max}=direct*(1+x\%)directmax​=direct∗(1+x%),directmin=direct∗(1−x%)direct_{min}=direct*(1-x\%)directmin​=direct∗(1−x%),indirectmax=indirect∗(1+x%)indirect_{max}=indirect*(1+x\%)indirectmax​=indirect∗(1+x%),indirectmin=indirect∗(1−x%)indirect_{min}=indirect*(1-x\%)indirectmin​=indirect∗(1−x%)。

通过图4我们可以看出,LOFmaxLOF_{max}LOFmax​和LOFminLOF_{min}LOFmin​之间的差距随着direct/indirectdirect/indirectdirect/indirect的比值增大而呈线性增长,这说明LOFmaxLOF_{max}LOFmax​和LOFminLOF_{min}LOFmin​之间的相对跨度(LOFmax−LOFmin)/(direct/indirect)(LOF_{max}-LOF_{min})/(direct/indirect)(LOFmax​−LOFmin​)/(direct/indirect)是一个常数。

如果直接和间接邻域内平均可达性距离的波动很小,或者说pctpctpct很小,理论1则可以很好地计算LOFLOFLOF,因为LOFLOFLOF的最大值和最小值很接近。

3.4 直接邻域重叠于多个聚簇的对象的边界

理论2:
ppp作为数据集DDD的一个对象。1≤MinPts≤∣D∣1\leq MinPts\leq |D|1≤MinPts≤∣D∣,并且C1,C2,⋯,CnC_1,C_2,\cdots, C_nC1​,C2​,⋯,Cn​是ppp的最近邻的所有对象的一个划分。
让ξi=∣Ci∣/∣NMinPts(p)∣\xi_i=|C_i|/|N_{MinPts}(p)|ξi​=∣Ci​∣/∣NMinPts​(p)∣
directmini(p),directmaxi(p),indirectmini(p),indirectmaxi(p)direct_{min}^i(p),direct_{max}^i(p),indirect_{min}^i(p),indirect_{max}^i(p)directmini​(p),directmaxi​(p),indirectmini​(p),indirectmaxi​(p)都是ppp和CiC_iCi​中的最近邻进行的计算。

LOF(p)≥(∑i=1nξi×directmini(p))⋅(∑i=1nξiindirectmaxi(p)LOF(p)≤(∑i=1nξi×directmaxi(p))⋅(∑i=1nξiindirectmini(p)LOF(p)\geq (\sum\limits_{i=1}^n \xi_i \times direct^i_{min}(p))\cdot(\sum\limits_{i=1}^n\frac{\xi_i}{indirect^i_{max}(p)}\\ LOF(p)\leq (\sum\limits_{i=1}^n \xi_i \times direct^i_{max}(p))\cdot(\sum\limits_{i=1}^n\frac{\xi_i}{indirect^i_{min}(p)} LOF(p)≥(i=1∑n​ξi​×directmini​(p))⋅(i=1∑n​indirectmaxi​(p)ξi​​LOF(p)≤(i=1∑n​ξi​×directmaxi​(p))⋅(i=1∑n​indirectmini​(p)ξi​​

[1] Hawkins, D.: “Identification of Outliers”, Chapman and Hall,
London, 1980.

【论文翻译和解释(2)】LOF:Identifying Density-Based Local Outliers论文精读相关推荐

  1. Deep Residual Learning for Image Recognition(ResNet)论文翻译及学习笔记

    [论文翻译]:Deep Residual Learning for Image Recognition [论文来源]:Deep Residual Learning for Image Recognit ...

  2. 能把中文论文翻译成英文进行查重吗?

    所有的大学都要求大学生写毕业论文,但不同的大学自然对学生的毕业论文有不同的要求,有些学校使用不同的查重检测系统. 所以最终的重复检查结果是不同的. 当然,现在很多高校都在使用知网论文查重系统,许多学生 ...

  3. BERT(一)--论文翻译:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    转载请注明出处:https://blog.csdn.net/nocml/article/details/124860490 传送门: BERT(一)–论文翻译:BERT: Pre-training o ...

  4. 计算机英语论文及翻译,计算机英语 论文翻译例子(初级)

    计算机英语 论文翻译例子(初级) (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 RETHINKING FLASH IN THE DAT ...

  5. 图像分类经典卷积神经网络—ZFNet论文翻译(中英文对照版)—Visualizing and Understanding Convolutional Networks(可视化和理解卷积网络)

    图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[ZFNet纯中文版] Visualizing and Understanding Con ...

  6. 【论文翻译】中英对照翻译--(Attentive Generative Adversarial Network for Raindrop Removal from A Single Image)

    [开始时间]2018.10.08 [完成时间]2018.10.09 [论文翻译]Attentive GAN论文中英对照翻译--(Attentive Generative Adversarial Net ...

  7. 【论文翻译】RetinaFace: Single-stage Dense Face Localisation in the Wild

    论文题目:RetinaFace: Single-stage Dense Face Localisation in the Wild 论文来源:RetinaFace: Single-stage Dens ...

  8. 论文翻译_论文翻译的注意事项有什么?

    针对不同题材的文稿有不同的翻译标准,论文翻译是比较严谨的一种翻译类型,下面小编给大家分享论文翻译的注意事项有什么? 注意"从一而终" 所有的论文,在权威平台上发布的时候都必须译为英 ...

  9. 转:经典论文翻译导读之《Google File System》

    首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 - 导航条 -首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源 经典论文翻译导读之<Google ...

  10. php 谷歌翻译api_科研福音,论文翻译神器系列!

    参考文献很大程度上反映了一篇论文的水平.对于研究生来说,自己动手写论文前的第一步工作就是阅读大量高水平.前沿的文献,而这些论文大多是英文写就. 人工翻译一般比较耗时且需要扎实的语言功底,对于初学者来说 ...

最新文章

  1. matlab有没有查找替换,matlab-字符查寻与替换
  2. 安装mysql 1045_mysql安装出现error Nr.1045
  3. 今天去医院拿宝宝的微量元素检查结果
  4. flask-mail异步发送邮件_.NET Core使用FluentEmail发送邮件
  5. Windows10安装TeXlive和TeXstudio
  6. spymemcached 的 useNagle 问题与 TCP/IP延迟发送数据
  7. php注册变量函数,PHP变量函数
  8. 软件测试人员应具备的素质
  9. 总结过去10年的程序员生涯
  10. kaptcha——谷歌验证码工具
  11. Python如何解决中文乱码
  12. 飞鱼crm接口,有没获取用户信息的接口和获取客户跟进信息的接口?是不是需要申请接口,等客服反馈。文档接口都看完了,没发现需要的接口信息!
  13. 网络游戏植入游戏案例
  14. ffmpeg(七)合并音视频文件
  15. 每日一字:biáng
  16. 【苹果相册推】怎么操作呢?是什么意思?
  17. python 可视化 皮肤_为什么我不建议你轻易入Python的“坑”?
  18. 树莓派4B从开箱到连接电脑(超级小白)
  19. 现代通信技术之通信业务
  20. HTML+JS实现省市区三级联动亲测可用

热门文章

  1. Android 8.1 DisplayPowerController(三) 亮度调节
  2. php5.2.17 pecl,php pecl的使用
  3. java 设置字符串编码_Java字符编码设置总结
  4. 利用H5SVG实现线性动画效果
  5. 谢烟客-----计算机基础
  6. 服务器名称 历史修改记录,清除 SQL Server Management Studio 服务器名称历史记录
  7. kuangbin带你飞专题
  8. 基于XPDL2.0的过程定义
  9. Webpack Chunk 分包规则
  10. 自己设计的一个android返回键