這篇文章是自己在上大數據分析課程時老師推薦的一篇文章,當時自己聽着也是對原作者當年的的思路新奇非常敬佩,相信很多夥伴也會非常感興趣,就來做個分享吧。原論文於2014
年發表於Science
期刊雜誌上。
- 論文題目:Clustering by fast search and find of density peaks
所解決的問題?
作者提出了一種更加強大的聚類算法,其對參數的依賴更少,泛化能力更強。集成了k-means
和DBSCAN
算法的思想。
背景
在研究問題前,我們先做綜述算法分析,看看研究進展,還有未研究問題,需要歸納總結,從實際問題,不同門類的研究問題,發現共性問題。這是科研的基本素養。作者正是基於規劃總結各類聚類算法得出一種更強的聚類算法。
如今已有很多聚類的方法,但是這些聚類方法針對很多衡量方式都沒有達成一致,也就是缺少一種通用的方式,或者說generalization
不夠。k-means
是完全聚類,無法分辨噪聲。K
參數選擇也比較困難,對於非凸形狀也無法處理。DBSCAN
可以聚類任意形狀,但是找一個恰當的minpoint
也比較玄學,並且對參數敏感。
所採用的方法?
聚類的中心點會有什麼特徵呢?作者提出了兩點直觀的理解,之後對其量化建模:
- Cluster centers are surrounded by neighbors with lower local density。(聚類的中心周圍都是比它密度低的點)。也就是說聚類中心周圍密度較低,中心密度較高。
- They are a relatively large distance from any points with a higher local density。(聚類中心點與其它密度更高的點之間通常都距離較遠)。
也就是滿足這兩個點才能成爲聚類中心點
因此,對於每個樣本點 計算兩個值:
- 局部密度值(
local density
):
其中函數:
參數 爲截斷距離(cutoff distance
),需要事先指定。
- 距離的定義如下:
對於非局部密度最大點,計算距離實際上分兩步 :
- 找到所有局部密度比點高的點;
- 在這些點中找到距離點最近的那個點,和的距離就是的值。
對於局部密度最大點,實際上是該點和其他所有點距離值的最大值。
取得的效果?
依據上述決策圖進行定性分析,結合主觀判斷纔得到最終的結果。可以看到聚類中心爲1和10。26、27、28爲離羣點(outlier)。
參考鏈接
論文鏈接:http://sites.psu.edu/mcnl/files/2017/03/9-2dhti48.pdf
代碼實現:https://github.com/lanbing510/DensityPeakCluster
我的微信公衆號名稱:深度學習先進智能決策
微信公衆號ID:MultiAgent1024
公衆號介紹:主要研究深度學習、強化學習、機器博弈等相關內容!期待您的關注,歡迎一起學習交流進步!