Clustering by fast search and find of density peaks

原文连接 https://zhangmingemma.github....git

聚类算法介绍

  聚类是将数据对象的集合分红类似的对象类的过程。使得同一个簇(或类)中的对象之间具备较高的类似性,而不一样簇中的对象具备较高的相异性。按照聚类的尺度,聚类方法可被分为如下三种:基于距离的聚类算法、基于密度的聚类方法、基于互连性的聚类算法。其中基于距离的聚类算法是用各式各样的距离来衡量数据对象之间的类似度。基于密度的聚类算法主要是依据合适的密度函数等。基于互连性的聚类算法一般基于图或超图模型,将高度连通的对象聚为一类。 github

本文介绍的是Alex Rodriguez和Alessandro Laio在Science上发表的《Clustering by fast search and find of density peaks》所提出的一种新型的基于密度的聚类算法。算法

算法思想

该算法的假设类簇的中心由一些局部密度比较低的点围绕, 而且这些点距离其余有高局部密度的点的距离都比较大.首先定义两个值:局部密度ρi以及到高局部密度点的距离δi,这两个值仅仅取决于两点之间的距离dij,且该距离知足三角不等式
图片描述less

其中dc是一个截断距离, 是一个超参数.因此ρi至关于距离点i的距离小于dc的点的个数.因为该算法只对ρi的相对值敏感,
因此对dc的选择比较鲁棒, δi用于描述点i到其余较高密度点之间的最小距离:
图片描述函数

对于密度最大的点, 设置δi=maxj(dij).只有那些密度是局部或者全局最大的点才会远大于正常的相邻点间距.所以聚类中心被视为是δi值异常最大的点。优化

聚类过程

那些有着比较大的局部密度ρi和很大的δi的点被认为是类簇的中心. 局部密度较小可是δi较大的点是异常点.在肯定了类簇中心以后, 全部其余点属于距离其最近的类簇中心所表明的类簇.具体的聚类过程能够从图1中看到,A图标识二维空间内的28个点,能够看到1和10两个点的密度最大,所以1和10被定义为聚类中心。右图是以ρi和为横坐标, 以δi为纵坐标, 这种图称做决策图。其中9和10两个点ρi值类似,但δi值却差别很大,所以9被归为点1的类簇,而10被归为另外一类簇。因此,只有较高δi值和相对较高ρi值的点才会被视为聚类中心。26, 27, 28三个点的δi也比较大, 可是ρi较小, 因此是异常点.
图片描述spa

聚类中心肯定以后,剩余点被分配给与其具备较高密度的最近邻居相同的类簇。与其余迭代优化的聚类算法不一样,类簇分配在单个步骤中执行。在聚类分析中, 一般须要肯定每一个点划分给某个类簇的可靠性. 在该算法中, 能够首先为每一个类簇定义一个边界区域(border region), 亦即划分给该类簇可是距离其余类簇的点的距离小于dc的点. 而后为每一个类簇找到其边界区域的局部密度最大的点, 令其局部密度为 . 该类簇中全部局部密度大于 的点被认为是类簇核心的一部分(亦即将该点划分给该类簇的可靠性很大), 其他的点被认为是该类簇的光晕, 亦便可以认为是噪音
图片描述对象

图A表示点分布,其中包含非球形点集和双峰点集。B和C分别表示4000和1000个点按照A中模式的分布,其中点根据其被分配的不一样类簇着色,黑色的点属于类簇光晕。D和E是对应的决策图,而F表示的是不一样点量下不正确聚类点的比率,偏差线表明平均值的标准差blog

聚类结果

图3是分别利用点集和Olivetti脸部图片集的聚类结果
图片描述进程

算法特色

算法具备如下特色:

A. 该算法是一种基于密度的聚类算法,核心思想是认为类簇的中心由一些局部密度比较低的点围绕, 而且这些点距离其余有高局部密度的点的距离都比较大。

B. 该算法将非聚类中心点的聚类过程分离成一个单独的进程。使得聚类中心的选择和非聚类点的归类分离开来,增大了聚类精度。

C. 该算法适用于图片、非球形点集的聚类。

相关文章
相关标签/搜索