1. 程式人生 > >聚類方法之DBSCAN

聚類方法之DBSCAN

演算法思想

DBSCAN是一種基於密度的聚類方法,其思想是根據樣本間的緊密程度來對簇進行劃分。

DBSCAN的樣本點一般被分為三類:
1.核心點:
在半徑Eps內含有超過MinPts數目的點
2.邊界點:
在半徑Eps內含有的點不超過MinPts,但是落在核心點領域內的點
3.噪聲點:
既不是核心點也不是噪聲點的點。
這裡有兩個引數需要人為指定:半徑長度Eps 和 點的資料MinPts

這裡寫圖片描述
如圖所示,綠色的為核心點,藍色的為邊界點,紅色的為噪聲點。

關於樣本點構成的一些其他概念:
1.Eps鄰域
假設樣本點p在資料集內,Eps領域即指的是資料集中離樣本p的距離小於等於Eps的樣本點的集合。
2.密度直達


假設有樣本點p,q。其中p是核心點,q在p的Eps鄰域內,則p,q密度直達。
3.密度可達
對於物件鏈:p_1,p_2……p_n,p_(i+1),是從p_i關於Eps和MinPts直接密度可達的,則物件p_n是從物件p_i關於Eps和MinPts密度可達的。
4.密度相連
對於樣本點p、q,若存在樣本點k使得p、q均由k密度可達,則稱p,q密度相連

這裡寫圖片描述
如上圖所示,虛線表示的是Eps鄰域,x_1和x_2為密度直達,x_1與x_3為密度可達,x_1與x_4為密度相連。

關於DBSCAN的概念解釋到這裡,弄懂以上概念,DBSCAN的聚類原理也就顯而易見了,即:
1.找尋資料集中的核心點,形成集合 Ω


2.while Ω != null:
a.從Ω中任意選取核心點,並以此核心點找尋最大的密度可達,形成一個簇
b.將在該簇的核心點從Ω中清除
如此,聚類完成。

DBSCAN聚類演算法流程圖如下:

這裡寫圖片描述

總結

優點:

1.不用人為設定簇的個數
2.對資料集的噪音不敏感
3.能發現任意形狀的空間聚類,如能識別“非球形”的簇,而k-均值這種基於距離的聚類方法只能找出球狀的簇。
4.聚類結果幾乎不依賴節點的遍歷順序

缺點:
1.在大資料集下的I/O開銷大
2.當空間聚類不均勻、聚類間差距很大時,DBSCAN效果很差

參考