使用DBScan + Kmeans計算區域集聚和中心點

DBSCAN,英文全寫爲Density-based spatial clustering of applications with noise ,是在 1996 年由Martin Ester, Hans-Peter Kriegel, Jörg Sander 及 Xiaowei Xu 提出的聚類分析算法, 這個算法是以密度爲本的:給定某空間裏的一個點集合,這算法能把附近的點分成一組(有很多相鄰點的點),並標記出位於低密度區域的局外點(最接近它的點也十分遠).

k-平均算法(英文:k-means clustering)源於信號處理中的一種向量量化方法,現在則更多地作爲一種聚類分析方法流行於數據挖掘領域。k-平均聚類的目的是:把{\displaystyle n}個點(可以是樣本的一次觀察或一個實例)劃分到k個聚類中,使得每個點都屬於離他最近的均值(此即聚類中心)對應的聚類,以之作爲聚類的標準。這個問題將歸結爲一個把數據空間劃分爲Voronoi cells的問題。

使用DBScan進行聚類計算

使用K-means進行聚類計算

案例分析

dbscan會剔除噪點,k-means會把任何點都歸到了某一個類。

k-means 的中心點不是聚集區域的中心點,而是整個聚類的中心點;DBSCAN 無法找出中心點。

相比 k-means ,DBSCAN 不需要預先聲明聚類數量。

DBSCAN 可以找出任何形狀的聚類,甚至能找出一個聚類,k-means需要指定集類的個數。

 

要想找出聚集區域並給出準確的中心點,可以使用DBScan分析聚類個數和聚類包含的點,再通過k-means將每個聚類所包含的點計算出中心點。

 

藍色爲聚類1,黑色爲聚類2,灰色爲噪點。

具體算法的實現代碼網上有很多介紹,可以參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章