原文提出了一种聚类密度峰值的方法
聚类 Clustering:即将数据对象的集合分成相似对象的过程
本文假设聚类中心被具有较低局部密度的邻居包围,并且它们与具有较高局部密度的任何点的距离相对较大。
ρ i = ∑ j χ ( d i j − d c ) \rho_{i}=\sum\limits_{j} \chi(d_{ij}-d_{\mathrm{c}}) ρi=j∑χ(dij−dc) where χ ( x ) = 1 \chi(x)=1 χ(x)=1 if x < 0 x<0 x<0 and χ ( x ) = 0 \chi(x) =0 χ(x)=0 otherwise
公式分析:
-
ρ i \rho_{i} ρi表示点 i i i的局部密度
-
d i j d_{ij} dij表示点 i i i和点 j j j的距离
-
d c d_c dc表示一个界
通俗来说呢,所谓的点的局部密度,以这个点为中心,
d
c
d_c
dc为半径,画一个圈圈,数一下圈圈里面点的个数,就是这个点的局部密度啦。这个点的局部密度越大,它越可能是簇中心。
在一个数据集上找簇中心的过程就好像在地图上找市中心的过程。即一个人的邻居越多,这个人越可能居住在市中心。
但是如果单纯的使用局部密度的大小来找出市中心,可能会出现一个问题。比如小红住在成都市中心的幸福小区,小明住在幸福小区对面的快乐小区,而小王住在绵阳市中心的碧波豪庭。由于成都市中心的人口比绵阳的多,所以小红和小明的邻居都比小王的多,于是当按照邻居数量的多少来找市中心的时候,找了好几个市中心都在成都市,没办法找到绵阳的小王了。
于是作者提出了一个新的指标 δ \delta δ来解决此问题
δ i = min j : ρ j > ρ i ( d i j ) \delta_i=\min\limits_{j:\rho_j>\rho_i}(d_{ij}) δi=j:ρj>ρimin(dij)
for the point with highest density: δ i = max j ( d i j ) \delta_i=\max_j(d_{ij}) δi=maxj(dij)
公式分析:
- d i j d_{ij} dij表示点 i i i和点 j j j的距离
- δ i \delta_i δi表示距离点 i i i最近且局部密度比点 i i i高的点 和点 i i i的距离
- 当点 i i i为局部密度最高的点时, δ i \delta_i δi为和它最远的点的距离
我们把 δ \delta δ值异常大的点作为聚类中心