原文出自:https://blog.csdn.net/LilyXFan/article/details/70598509?locationNum=1&fps=1
參考文獻:2014年發表在Nature上的文章Clustering by fast search and find of density peaks
核心思想:密度比鄰居節點高、與比其密度大的點的距離相對大的點是聚類中心。
1. 兩個定義:
1.1.局部密度ρ
:
其中,χ(x)={1,0,x<0otherwise (cutoff kernal)
也可以採用gassion kernal計算:
1.2.密度比i大且距i最近的點與i的距離δ:
特別的,對於密度最大的點,δi=maxj(dij)
2.聚類中心的選擇
ρ
散點圖觀察
3.其他點的分配
其餘非聚類中心點,被分配到密度比其大、距離最近的點所屬的類(高密度向低密度傳播,因此適用於流型)
4.分配的可靠性度量
沒有引入noise-signal cutoff.本文爲每個聚類定義了border
region(分配到該類但距其他類中點的距離小於dc的點的集合) 對每個聚類,找到其borderregion中點的最大密度ρb
在某個聚類c中,ρi
>ρb,則i會分配到聚類c中,否則i被稱爲halo(可以被理解爲噪聲)
5.dc的取值
可以去dc,使得平均鄰居數佔數據集中所有點的1%-2%
dc的取值具有魯棒性,dc大,ρ
和選中心點時只比較相對大小,與具體的數值無關
6.cutoff kernal or gaussion kernal
對與小數據集,ρ
時採用gaussion kernal要更好些。
7.實驗效果
輸入:距離矩陣/相似度矩陣(不一定要是歐式距離),只需要點之間的關係(通過MDS多維尺度變換能直觀的展現數據點之間在多種距離上離得多近,還可以產生一個低維的數據點表示,MDS不需要原始數據,只需要衡量點間距離的距離矩陣。)
7.1.Spiral
7.2.Flame
7.3.Aggregation
7.4.Jain
8.思考
Q1.當密度分佈不均勻時,聚類效果如何?
效果不好(如Jain數據集),在計算局部密度時並沒有考慮局部結構
Q2.重疊羣組?
不交叉