1. 程式人生 > >聚類演算法之DBSCAN演算法之二:高維資料剪枝應用NQ-DBSCAN

聚類演算法之DBSCAN演算法之二:高維資料剪枝應用NQ-DBSCAN

一、經典DBSCAN的不足

1.由於“維度災難”問題,應用高維資料效果不佳
2.執行時間在尋找每個點的最近鄰和密度計算,複雜度是O(n2)。當d>=3時,由於BCP等數學問題出現,時間複雜度會急劇上升到Ω(n的四分之三次方)。

二、DBSCAN在高維資料的改進

目前的研究有Grid-based和approx等方向,基於Grid-based結構的有Fast-DBSCAN,時間複雜度最壞是O(n*log(n)),但只使用於二維資料空間。ρ-approximate DBSCAN使用四叉樹分級結構,在d(維度)相對較小時,執行時間呈線性O(n),d較高時,執行時間是O(n2)。

三、NQ-DBSCAN

NQ-DBSCAN即在ρ-approx DBSCAN的基礎上,對高維資料聚類時,採用剪枝操作,減少不必要的距離計算。它的平均時間複雜度是O(n*log(n)),索引結構也是四叉樹分級結構最優時間複雜度是O(n)。

3.1 NQ-DBSCAN的假設與結論

NQ-DBSCAN即使用三角不等式的性質,通過一個點的NBHD,不必計算所有區域,只要計算小面積的點,就可以找到其臨近點的NBHD,即剪枝。
假設:當點p和q距離很近時,他們的ε-NBHD也很近(近鄰區域,不瞭解的朋友可以看上一篇部落格)。給定ε,兩點距離越近,NBHD越相似。如圖:
在這裡插入圖片描述
結論1:當p的l-nbhd=minPts,其中l>ε,點p是非核心點時,則與點p距離不超過l-ε的點為非核心點。
在這裡插入圖片描述


結論2:p,q,m都是資料集P中的點,
(1)如果d(p,m)<ε-d(p,q),則m屬於q所在的聚類。
(2)如果d(p,m)>ε+d(p,q),則m不屬於q所在的聚類。
(3)對於下圖所示,已知點p的2ε範圍內的點,點q的ε範圍內點只需查詢圈2和圈4之間的點(藍色圈)。其中圈4內的點必定為聚類點,圈1和圈2內的點必定為非聚類點(由結論1和2得出)。
在這裡插入圖片描述

3.2 NQ-DBSCAN演算法分析

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

3.3 NQ-DBSCAN的構造+查詢

NQ-DBSCAN是在ρ-approx的基礎上進行剪枝,則使用和ρ-approx一樣的四叉樹分級結構,同理查詢演算法一致。
構造過程這裡比較麻煩,在文末有詳細的ppt還有原始論文,感興趣的朋友可以下載。
查詢演算法:


給定引數q,ε,ρ,初始化ans=0,取一個非空第i層單元c,c和查詢點q有以下三種情況:
1.如果c和B(q,ε)完全不相交,則不考慮該單元。
2.如果c完全處於B(q,ε(1+ρ))中,則ans=ans+cnt©
3.不符合1和2的情況,c是葉子單元,當c與B(q,ε)相交時,ans=ans+cnt©。c不是葉子單元,遞迴遍歷c的子單元,重複該過程。
在這裡插入圖片描述
對於第二層單元,即SW(5)和NE(4)來說,SW(5)與查詢點q完全不相交,則跳過。NE(4)被點q的B(q,ε(1+ρ))覆蓋,則ans=4,不必遍歷子單元。

四、總結

基於密度聚類演算法是聚類中一個很重要的方式,但它應用於高維資料時,時間複雜度較高。所有的密度聚類演算法都面臨著同樣的問題:如何儘可能的將ε半徑縮小,且ε-nbhd中點數達到最多?這對於ANN(近鄰最近搜尋)十分重要,因此,還需結合密度聚類的特點,應用在實際場景中。

五、下載

源論文下載
https://pan.baidu.com/s/11sTXuZIZ1anCxcKbdptRKA
ppt(內含詳細總結)下載
https://pan.baidu.com/s/1HDkKnv6PEpKiQ21Q1Fl23g

基於密度的研究演算法暫時告一段落了,這種方法在ANN上應用不多,確切的說,在大資料範圍內,沒有廣泛應用,這在最新成果上資料的維數和資料量大小可以判斷出來。但目前已經有在人臉識別、年齡預測等領域上應用。感興趣的朋友歡迎留言討論~