【Science】顛覆三觀的超強聚類算法

  這篇文章是自己在上大數據分析課程時老師推薦的一篇文章,當時自己聽着也是對原作者當年的的思路新奇非常敬佩,相信很多夥伴也會非常感興趣,就來做個分享吧。原論文於2014年發表於Science期刊雜誌上。

Science官網截圖

  • 論文題目:Clustering by fast search and find of density peaks

所解決的問題?

  作者提出了一種更加強大的聚類算法,其對參數的依賴更少,泛化能力更強。集成了k-meansDBSCAN算法的思想。

背景

  在研究問題前,我們先做綜述算法分析,看看研究進展,還有未研究問題,需要歸納總結,從實際問題,不同門類的研究問題,發現共性問題。這是科研的基本素養。作者正是基於規劃總結各類聚類算法得出一種更強的聚類算法。

  如今已有很多聚類的方法,但是這些聚類方法針對很多衡量方式都沒有達成一致,也就是缺少一種通用的方式,或者說generalization不夠。k-means是完全聚類,無法分辨噪聲。K參數選擇也比較困難,對於非凸形狀也無法處理。DBSCAN可以聚類任意形狀,但是找一個恰當的minpoint也比較玄學,並且對ε\varepsilon參數敏感。

所採用的方法?

  聚類的中心點會有什麼特徵呢?作者提出了兩點直觀的理解,之後對其量化建模:

  1. Cluster centers are surrounded by neighbors with lower local density。(聚類的中心周圍都是比它密度低的點)。也就是說聚類中心周圍密度較低,中心密度較高。
  2. They are a relatively large distance from any points with a higher local density。(聚類中心點與其它密度更高的點之間通常都距離較遠)。

  也就是滿足這兩個點才能成爲聚類中心點

  因此,對於每個樣本點 ii 計算兩個值:

  1. 局部密度值(local density):ρi\rho_{i}

ρi=jχ(dijdc)\rho_{i}=\sum_{j} \chi\left(d_{i j}-d_{\mathrm{c}}\right)

  其中函數:

χ(x)={1,x<00,x0\chi(x)=\left\{\begin{array}{ll} 1, & x<0 \\ 0, & x \geq 0 \end{array}\right.

  參數 dc>0d_{c} > 0截斷距離(cutoff distance),需要事先指定。

  1. 距離的定義如下:

δi={minjISi{dij},ISimaxjIS{dij},ISi=\delta_{i}=\left\{\begin{array}{ll} \min _{j \in I_{S}^{i}}\left\{d_{i j}\right\}, & I_{S}^{i} \neq \emptyset \\ \max _{j \in I_{S}}\left\{d_{i j}\right\}, & I_{S}^{i}=\emptyset \end{array}\right.

  對於非局部密度最大點,計算距離δi\delta_{i}實際上分兩步 :

  • 找到所有局部密度比ii點高的點;
  • 在這些點中找到距離ii點最近的那個點jjiijj的距離就是δi\delta_{i}的值。

  對於局部密度最大點,δi\delta_{i}實際上是該點和其他所有點距離值的最大值。

取得的效果?

決策圖

  依據上述決策圖進行定性分析,結合主觀判斷纔得到最終的結果。可以看到聚類中心爲1和10。26、27、28爲離羣點(outlier)。

實驗結果

實驗結果

算法與k-means對比分析結果

參考鏈接

  論文鏈接:http://sites.psu.edu/mcnl/files/2017/03/9-2dhti48.pdf

  代碼實現:https://github.com/lanbing510/DensityPeakCluster

我的微信公衆號名稱:深度學習先進智能決策
微信公衆號ID:MultiAgent1024
公衆號介紹:主要研究深度學習、強化學習、機器博弈等相關內容!期待您的關注,歡迎一起學習交流進步!

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