聚类二之密度聚类

目录

1. 密度聚类算法概述

2. DBSCAN 算法

2.1 DBSCAN 若干概念

2.2 DBSCAN算法的流程

3. 密度最大值算法

3.1 密度最大值算法的原理

3.2 DensityPeak 与决策图Decision Graph

3.3 边界和噪声的重认识 

3.4 不同数据下密度最大值聚类的效果

4. Affinity Propagation

4.1 Affinity Propagation 算法原理

4.2 Affinity Propagation 算法调参

5. 参考文献 


1. 密度聚类算法概述

密度聚类方法的指导思想: 只要样本点的密度大于某阈值,则将该样本添加到最近的簇中。

优点:

(1) 能克服基于距离的算法只能发现“类圆形”(凸)的聚类的缺点,可发现任意形状的聚类。

比如:GMM——K-Means只能得到类圆形区域

(2) 对噪声数据不敏感

(3) 对数据的分布没有要求。(K-Means要求数据服从混合高斯分布)

缺点:

(1) 计算密度单元的计算复杂度大,需要建立空间索引来降低计算量。

密度聚类算法:

DBSCAN

密度最大值算法

2. DBSCAN 算法

DBSCAN(Density based spatial clustering of applications with noise ), 将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”的数据中发现任意形状的聚类。

2.1 DBSCAN 若干概念

对象的-邻域:给定对象在半径内的区域。 

核心对象:对于给定的数目m,如果一个对象的-邻域至少包含m个对象,则称该对象为核心对象。

直接密度可达:给定一个对象集合D,如果p是在q-邻域内,而q是一个核心对象,我们说对象p从对象q出发是直接密度可达的。同时定义,没有任何点是由非核心点直接可达的

eg:如下图所示:= 1cm,m=5,q是一个核心对象,从对象q出发到对象p是直接密度可达的。

密度可达:如果存在一个对象链p1, p2, p3,……pn(pi∈ D1≤i≤n), p1=q(核心对象), pn =p,pi+1是从pi关于E和m直接密度可达的(pi1≤i≤n-1,为核心对象),则对象p是从对象q关于和m密度可达的。

 

密度相连:如果对象集合D中存在一个对象o,使得对象p和q是从o关于E和m密度可达的,那么对象p和q是关于和m密度相连的。 

 

定义了密度相连之后,每个聚类都符合两个性质:

(1)一个聚类里的两个点都是互相连接的。

(2)如果一个点p是由一个在聚类里的点q可达的,那么p也在q所属的聚类里。

簇:一个基于密度的簇是最大的密度相连对象的集合。

噪声:不包含在任何簇中的对象称为噪声。

2.2 DBSCAN算法的流程

 (1)如果一个点p的E-邻域包含多于m个对象,则创建一个p作为核心对象的新簇;

(2)寻找并合并核心对象直接密度可达的对象;(用到并查集,不关心路径,只关心两个点是否连接)

(3)没有新点可以更新簇时,算法结束;

DBSCAN 需要两个参数:ε (eps) 和形成高密度区域所需要的最少点数 (minPts)

伪代码:

DBSCAN(D, eps, MinPts) {
   C = 0
   for each point P in dataset D {
      if P is visited
         continue next point
      mark P as visited
      NeighborPts = regionQuery(P, eps)
      if sizeof(NeighborPts) < MinPts
         mark P as NOISE
      else {
         C = next cluster
         expandCluster(P, NeighborPts, C, eps, MinPts)
      }
   }
}

expandCluster(P, NeighborPts, C, eps, MinPts) {
   add P to cluster C
   for each point P' in NeighborPts { 
      if P' is not visited {
         mark P' as visited
         NeighborPts' = regionQuery(P', eps)
         if sizeof(NeighborPts') >= MinPts
            NeighborPts = NeighborPts joined with NeighborPts'
      }
      if P' is not yet member of any cluster
         add P' to cluster C
   }
}

regionQuery(P, eps)
   return all points within P's eps-neighborhood (including P)

由上述算法可知:

  • 每个簇至少包含一个核心对象;
  • 非核心对象可以是簇的一部分,构成了簇的边缘(edge);
  • 包含过少对象(少于m个)的簇被认为是噪声。

3. 密度最大值算法

密度最大值聚类可识别各种形状的类簇,且参数很容易确定。

3.1 密度最大值算法的原理

局部密度ρi

dc 是一个截断距离,ρi 即到对象i的距离小于dc的对象的个数。由于该算法只对ρi的相对值敏感,所以对dc的选择是稳健的,一种推荐的做法是选择dc,使得平均每个点的邻居数为所有点的1%—2%。(why?)

高局部密度点距离δi

在密度高于对象i的所有对象中,到对象i最近的距离,即高局部密度点距离。 

对于密度最大的对象,设置,即该问题中的无穷大。只有那些密度是局部或者全局最大的点才会有远大于正常值的高局部密度点距离。 

 

簇的中心:比较大的局部密度ρi和大的高局部密度点距离δi

异常点:高局部密度点距离δi较大但是局部密度ρi较小

确定簇中心之后,其它点按照距离已知簇的中心最近进行分类(也可按照密度可达的方法进行分类)

3.2 DensityPeak 与决策图Decision Graph

3.3 边界和噪声的重认识 

在聚类分析中,通常需要确定每个点划分给某个簇的可靠性。

3.4 不同数据下密度最大值聚类的效果

 

4. Affinity Propagation

4.1 Affinity Propagation 算法原理

r(i,k):i对k的依赖

a(i,k):k对i的适合度

将距离的相反数(倒数)作为两点的相似度。 

4.2 Affinity Propagation 算法调参

5. 参考文献 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值