目录

密度聚类方法

DBSCAN

DBSCAN算法的若干概念

DBSCAN具体实现步骤

DBSCAN的优缺点

密度聚类方法

密度聚类方法的核心思想是,只要样本点的密度大于某阈值,则将该样本添加到最近的簇中。这类算法可发现任意形状的聚类, 且对噪声数据不敏感。但密度单元的计算复杂度大,需要建立空间索引来降低计算量。

DBSCAN

DBSCAN(Density-Based Spatial Clustering of Applications with Noise),基于密度的带噪声的空间聚类的应用,一个比较有代表性的基于密度的聚类算法。 它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有噪声的数据中发现任意形状的聚类。

DBSCAN算法的若干概念

  • 对象的ε-邻域:给定对象在半径ε内的区域。
  • 核心对象:对于给定的数目m,如果一个对象的ε-邻域至少包含m个对象,则称该对象为核心对象。
  • 直接密度可达:如果对象p是在对象q的ε-邻域内,而q是一个核心对象,我们就说对象p从对象q出发是直接密度可达的。
  • 密度可达:如果存在一个对象链,,对于任意,是从关于ε和m直接密度可达的,则对象p是从对象q关于ε和m密度可达的。
  • 密度相连:如果对象集合中存在一个对象o,使得对象p和q是从o关于ε和m密度可达的,那么对象p和q是关于ε和m密度相连的。
  • 簇:一个基于密度的簇是最大的密度相连对象的集合。
  • 噪声:不包含在任何簇中的对象称为噪声。

DBSCAN具体实现步骤

  1. 从任意一个数据点开始,用距离阈值ε将这个点的邻域提取出来。
  2. 如果在邻域内至少有m个点,那么该点是核心对象,被纳入第一个簇。否则该点将被标记为噪声(之后这个噪声点可能还是会变成簇中的一部分)。
  3. 对于簇中的核心对象,在它邻域内的点也被纳入簇中。对于簇中所有点,再去提取它们的邻域,确定邻域内的点是否也属于当前的簇。
  4. 第 2~3 步的过程会一直重复,直到簇内所有点都被确定,即所有在邻域内的点都被标记属于一个簇或者是噪声。
  5. 一旦我们在当前簇做完这些,就会从新的数据点开始,接着发现下一个簇或噪声。这个过程反复进行直到所有的点都已被访问,最后每个点都被标记属于某一个簇或者是噪声。

DBSCAN的优缺点

优点:

  1. 不需要预先确定聚类的数量。
  2. 可以很好地发现任意尺寸和任意形状的聚类。
  3. 对噪声数据不敏感,将离群值认定为噪声,不像mean-shift算法仅仅将将它们扔到一个簇里,即使簇中数据差异很大。

缺点:

  1. 当集群的密度变化时,它表现得不像其他算法那样好。这是因为当密度变化时,距离阈值 ε 和用于确定邻居点的m也将会随之改变。
  2. 这个缺点也会发生在高维数据中,因为距离阈值 ε 变得难以被估计。