一。基於密度的聚類算法簡介
DBSCAN是數據挖掘中最經典基於密度的聚類算法。
基於密度的聚類算法的核心是,通過某個點r鄰域內樣本點的數量來衡量該點所在空間的密度。和k-means算法的不同的是:
1.可以不需要事先指定cluster的個數。
2.可以找出不規則形狀的cluster。
二。DBSCAN算法思想
該算法的參數是:r 和minPts
r:表示某點領域的閾值。
minPts:表示某點r鄰域范圍內樣本點的數量。
核心點:若某點r鄰域內樣本點的數量不小於minPts,則該點就是核心點。
圓圈代表 r 鄰域,紅色點為核心點,B、C為邊界點,而N為噪聲點。
算法的本質是一個發現類簇並不斷擴展類簇的過程。
對於任意一點q,若它是核心點,則在該點為中心,r為半徑可以形成一個類簇c.
而擴展的方法就是,遍歷類簇c內所有點,判斷每個點是否是核心點,若是,則將該點的r鄰域也划入類簇c.遞歸執行,直到不能太擴展類簇c.
假設 minPts 為3,r 為圖中圓圈的半徑,算法從A開始,經計算其為核心點,則將點A及其鄰域內的所有點(共4個)歸為類Q,接着嘗試擴展類Q。查詢可知類Q內所有的點均為核心點(紅點),故皆具有擴展能力,點C也被划入類Q。在遞歸拓展的過程中,查詢得知C不是核心點,類Q不能從點C處擴充,稱C為邊界點。邊界點被定義為屬於某一個類的非核心點。在若干次擴展以后類Q不能再擴張,此時形成的類為圖中除N外的所有的點,點N則成為噪聲點,即不屬於任何一個類簇的點,等價的可以定義為從任何一個核心點出發都是密度不可達的。在上圖中數據點只能聚成一個類,在實際使用中往往會有多個類,即在某一類擴展完成后另外選擇一個未被歸類的核心點形成一個新的類簇並擴展,算法結束的標志是所有的點都已被划入某一類或噪聲,且所有的類都不可再擴展。