密度聚類演算法(二)

2021-07-27 12:19:06 字數 1524 閱讀 1848

dbscan是一種著名的密度聚類演算法,基於一組鄰域引數(r,minpts)來刻畫樣

本的緊密程度。說的通俗點就是以某個樣本點為中心,以r為半徑進行畫圓,在圓內的範圍都是鄰域範圍。

基本概念:

(1)r-鄰域。對任意xi屬於資料集d,其r鄰域包含樣本集d中與xi的距離不大於r的樣本,即n(xi)=。(其實就是畫了個圈子)

(2)核心物件。核心物件就是r-鄰域內至少包含minpts個樣本,即|n(xi)|>=minpts,

那麼xi為乙個核心物件。(圈子內的小弟足夠多,那麼就是老大,否則就不是老大)

(3)密度直達。如果xj位於xi的r-鄰域內,並且xi為核心物件,則稱xj由xi密度直達。(可以理解為由老大直接領導的小弟)

(4)密度可達。對xi與xj,如果存在樣本序列p1,p2…pn,其中p1=xi,pn=xj且p(i+1)由pi密度直達,則稱xj由xi密度可達。(可以理解為別人家的小弟,不在我的直接領導下,但是還是可以下點命令的吧)

(5)密度相連。對xi與xj,如果存在xk使得xi與xj均由xk密度可達,則稱xi與xj密度相連。(可以理解為xk找了兩個小弟,注意xk必須是老大,兩個小弟地位等同)

這裡給大家提一下,這個r-鄰域中的距離怎麼衡量呢?用什麼指標來進行衡量?

參照之前博文講的幾種樣本相似度度量的距離標準,一般用歐氏距離即可。

了解了這些概念之後,接下來就開始正式了解一下dbscan演算法。

總結起來dbscan就是三個步驟:

(1)     先找出所有的核心物件來。

(2)     然後對所有的核心物件進行隨機遍歷,找出所有的密度可達點。(可達的概念還是挺重要的,其實就是核心點在中間當做橋梁,即乙個核心物件的鄰域內也包含其他的核心物件,這樣就可以串下去了)

(3)     當所有的核心物件點遍歷完之後,剩下的點就是雜訊點或者是低密度區域。

理解了這三句話,dbscan演算法基本就差不多了。接下來分析一下dbscan的優缺點以及改進的方向。

演算法的顯著優點是聚類速度快且能夠有效處理雜訊點和發現任意形狀的空間聚類。但是由於它直接對整個資料庫進行操作且進行聚類時使用了乙個全域性性的表徵密度的引數,因此也具有比較明顯的弱點:

(1)當資料量增大時,要求較大的記憶體支援i/o消耗也很大;

(2)當空間聚類的密度不均勻、聚類間距差相差很大時,聚類質量較差。

(3)與使用者輸入的鄰域半徑及密度域值密切相關,可能由於使用者對資料特點不了解而輸入不合適的引數得出不準確的結論。引數敏感

(4)演算法過濾雜訊點同時也是其缺點,造成了其不適用於某些領域(比如網路安全領域中惡意攻擊的判斷)

與k-means演算法相比較dbscan演算法的優點:

(1)    不必輸入聚類簇數量k。

(2)    聚類簇的形狀沒有任何限制。

(3)    可以在需要的時候輸入過濾雜訊的引數。

密度聚類演算法DBScan

利用密度聚類dbscan對樣本進行分類。基本思路 1 讀取兩組不同資料訓練 2 分別對兩組資料進行聚類 3 將聚類結果視作乙個多維空間的點,計算其到原點的歐氏距離 4 根據ans1和ans2的歐氏距離找到合適的閾值 幾個必要概念 鄰域 對於樣本集中的xj,它的 鄰域為樣本集中與它距離小於 的樣本所構...

DBSCAN密度聚類演算法

dbscan是一種基於密度的聚類演算法,這類密度聚類演算法一般假定類別可以通過樣本分佈的緊密程度決定。同一類別的樣本,他們之間的緊密相連的,也就是說,在該類別任意樣本周圍不遠處一定有同類別的樣本存在。通過將緊密相連的樣本劃為一類,這樣就得到了乙個聚類類別。通過將所有各組緊密相連的樣本劃為各個不同的類...

聚類和EM演算法 密度聚類

模型原型 class sklearn.cluster.dbscan eps 0.5,min samples 5,metric euclidean algorithm auto leaf size 30,p none,random state none 引數 eps 引數,用於確定鄰域大小 min s...