簡單的說就是根據一個根據對象的密度不斷擴展的過程的算法。一個對象O的密度可以用靠近O的對象數來判斷。學習DBSCAN算法,需要弄清楚幾個概念:
一:基本概念
1.:對象O的是與O為中心,
為半徑的空間,參數
,是用戶指定每個對象的領域半徑值。
2.MinPts(領域密度閥值):對象的的對象數量。
3.核心對象:如果對象O的對象數量至少包含MinPts個對象,則該對象是核心對象。
4.直接密度可達:如果對象p在核心對象q的內,則p是從q直接密度可達的。
5.密度可達:在DBSCAN中,p是從q(核心對象)密度可達的,如果存在對象鏈,使得
,
是
從關於
和MinPts直接密度可達的,即
在
的
內,則
到
密度可達。
6.密度相連:如果存在對象,使得對象
都是從q關於和MinPts密度可達的,則稱
是關於
和MinPts密度相連的。
二:密度可達和密度相連
圖1基於密度的聚類中的密度可達和密度相連性
由上圖可看出m,p,o.r 都是核心對象,因為他們的內都只是包含3個對象。
1.對象q是從m直接密度可達的。對象m從p直接密度可達的。
2.對象q是從p(間接)密度可達的,因為q從m直接密度可達,m從p直接密度可達。
3.r和s是從o密度可達的,而o是從r密度可達的,所有o,r和s都是密度相連的。
三:DBSCAN聚類過程
1.DBSCAN發現簇的過程
初始,給定數據集D中所有對象都被標記為“unvisited”,DBSCAN隨機選擇一個未訪問的對象p,標記p為“visited”,並檢查p的是否至少包含MinPts個對象。如果不是,則p被標記為噪聲點。否則為p創建一個新的簇C,並且把p的
中所有對象都放在候選集合N中。DBSCAN迭代地把N中不屬於其他簇的對象添加到C中。在此過程中,對應N中標記為“unvisited”的對象
,DBSCAN把它標記為“visited”,並且檢查它的
,如果
的
至少包含MinPts個對象,則
的
中的對象都被添加到N中。DBSCAN繼續添加對象到C,直到C不能擴展,即直到N為空。此時簇C完成生成,輸出。
為了找到下一個簇,DBSCAN從剩下的對象中隨機選擇一個未訪問過的對象。聚類過程繼續,直到所有對象都被訪問。
2.DBSCAN聚類算法流程