密度峰值聚類算法——心得總結


這是離開公司前做的最后一個算法,之前做的一些算法,由於老大的指點,少走了很多彎路,密度峰值聚類這個是純粹自己做的,走了很多彎路,在這里和大家分享借鑒一下,共勉!

 

一、簡單介紹及原理

顧名思義,這是一種基於密度的聚類算法,以高密度區域作為判斷依據,這種非參數的方法,和傳統方法比,適用於處理任何形狀的數據集,而且無需提前設置簇的數量。

這里提到一個聚類中心的概念:類簇的中心是由一些局部密度較低的點所圍繞,且這些點距離其他高密度的點的距離都比較遠,通過計算最近鄰的距離,得到聚類中心,並依據密度大小進行排列。

我在這里借鑒了——馬春來,單洪,馬濤.一種基於簇中心點自動選擇策略的密度峰值聚類算法.計算機科學.2016,43(7)。這個文獻中提供了一種自動選擇策略的方法,大家有興趣可以看一下。

對於一個數據集D={p1,p2,……pn}的點pi,計算每個點的局部密度ρi和相鄰密度點的距離di,這里提出一個概念,簇中心權值:γi= ρi * di  。

通過將簇中心權值降序排列,我們可以通過下降的趨勢(斜率)找出拐點所在。

下圖為選擇聚類中心的方法

省略了不少東西,大家可以下載那份文獻自己細細研讀。

 

二、一些遇到的問題及我的心得

1、有現成的代碼固然好,但是別人的代碼解決的問題終歸和你的問題不一樣。不如自己從頭到尾擼一遍,結合自己的情況進行修改。

2、傳統的密度峰值聚類需要自己設置參數,稍微加以改進可以扔掉參數,讓它自己迭代。

3、為什么要將密度和距離相乘:這樣可以避免某一項的值過小,導致特征不明顯

4、注意歸一化的問題,具體情況具體對待。(在歸一化這個問題坑了我蠻久)

5、拐點的確定問題,在算法構建的初始階段,最好人工重復確認一下,避免盲目自信到后面找不到問題所在。

6、若某兩個或多個聚類點距離較近,將其歸為一個同一個聚類中心。



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM