1 密度聚类简介
基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一个区域中的样本密度大于某个阈值,就把它划入与之相近的簇中。
密度聚类从样本密度的角度进行考察样本之间的可连接性,并由可连接样本不断扩展直到获得最终的聚类结果。这类算法可以克服K-means、BIRCH等只适用于凸样本集的情况。
常用的密度聚类算法:DBSCAN、MDCA、OPTICS、DENCLUE等。
密度聚类的主要特点是:
- 发现任意形状的簇
- 对噪声数据不敏感
- 一次扫描
- 需要密度参数作为停止条件
- 计算量大、复杂度高
2 DBSCAN算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基于一组邻域参数 (ε\varepsilonε,MinPts) 来描述样本分布的紧密程度,相比于基于划分的聚类方法和层次聚类方法,DBSCAN算法将簇定义为密度相连的样本的最大集合,能够将密度足够高的区域划分为簇,不需要给定簇数量,并可在有噪声的空间数据集中发现任意形状的簇。
DBSCAN算法的核心思想是:用一个点的 ε\varepsilonε 邻域内的邻居点数衡量该点所在空间的密度,该算法可以找出形状不规则的cluster,而且聚类的时候事先不需要给定cluster的数量。
2.1 基本概念
1)给定的数据集D={ x1,x2,...,xm}D=\{ x_1,x_2,...,x_m\}D={ x1,x2,...,xm},定义如下:
-
ε\varepsilonε-邻域( Eps):对xi∈Dx_i \in Dxi∈D,其 ε\varepsilonε邻域内包含DDD中与xjx_jxj的距离不大于ε\varepsilonε的所有样本
Nε(xj)={ xi∈D:dist(xi,xj)≤ε} N_\varepsilon (x_j)=\{ x_i \in D: dist( x_i, x_j) \leq \varepsilon \} Nε(xj)={ xi∈D:dist(xi,xj)≤ε} -
MinPts: ε\varepsilonε邻域内样本个数最小值。
-
核心对象:若xjx_jxj的 ε\varepsilonε邻域内至少包含MinPts个样本,∣Nε(xj)∣≥MinPts|N_\varepsilon (x_j)| \geq MinPts∣Nε(xj)∣≥MinPts,则xjx_jxj为一个核心对象
-
密度直达(directly density-reachable):若xjx_jxj位于xix_ixi的ε-邻域中,且xix_ixi是核心对象,则称xjx_jxj由xix_i