聚类分析分通过分析大量含有一定规律但杂乱数据,得到数据间内在的逻辑,将杂乱的数据按照所得的数据规律划分成不同的种类。K-measn、DBSCAN和层次是当前广泛使用的三种聚类方法。以下对三种方法进行分析,选择适合的聚类方法。
方法 | K-means | 凝层次 | DBSCAN |
类型 | 基于原型的、划分的、完全的 | 层次的、完全的 | 基于密度的、划分的、部分的 |
基本原理 | 以样本非中心点到其所属的中心点的距离的平方和最小为目标来划分相应的类,并不断更新质心的位置和划分新类直至质心稳定 | 以每个点作为一个类为始,依据某种距离逐步合并“最接近”的类,直至所有的类被合并,形成有层次的聚类树 | 通过半径和邻域内样本点数量对密度进行定义,将核心点与其邻域内的所有核心点同处一类,将边界点归到邻域内核心点的类中 |
优点 | 1、收敛速度快: 2、算法可解释性好,原理简单; 3、调参(K)简单 | 可发现聚类间的层次关系 | 1、抗噪音; 2、能处理任意形状类;自动确定类数; |
缺点 | 1、易受初始值限制; 2、需首先确定K值 | 计算复杂度高; | 对半径和邻域内包含点数敏感 |
本次主要详细阐述DBSCAN密度的定义,为后续研究DBSCAN密度聚类的原理和实现铺垫。
DBSCAN密度的定义
DBSCAN使用一组关于“邻域”概念的参数来描述样本分布的紧密程度,将具有足够密度的区域划分成簇,且能在有噪声的条件下发现任意形状的簇。参数(ϵ, MinPts)用来描述邻域的样本分布紧密程度。其中,ϵ描述了某一样本的邻域距离阈值,MinPts描述了某一样本的距离为ϵ的邻域中样本个数的阈值。
假设样本集是D=(x1,x2,...,xm),则DBSCAN具体的密度描述定义如下:
1) ϵ-邻域:对于xj∈D,其ϵ-邻域包含样本集D中与xj的距离不大于ϵ的子样本集,即Nϵ(xj)={xi∈D|distance(xi,xj)≤ϵ}, 这个子样本集的个数记为|Nϵ(xj)|。
2)核心点:对于任一样本xj∈D,如果其ϵ-邻域对应的Nϵ(xj)至少包含MinPts个样本,即如果|Nϵ(xj)|≥MinPts,则xj是核心点。如果判断A点是否为核心点,若设置的MinPts=6,因为A点的半径Eps内的点为7个大于了MinPts(包括A本身),|Nϵ(xj)|此时等于7。所以A为核心点!
3)密度直达:如果xi位于xj的ϵ-邻域中,且xj是核心点,则称xi由xj密度直达。注意反之不一定成立,即此时不能说xj由xi密度直达, 除非且xi也是核心点。如下图,A点为核心点(因为B点在A点的Eps半径范围内(ϵ-邻域中),所以B点由A点密度直达。
4)密度可达:对于xi和xj,如果存在样本序列p1,p2,...,pT,满足p1=xi,pT=xj, 且pt+1由pt密度直达,则称xj由xi密度可达。也就是说,密度可达满足传递性。此时序列中的传递样本p1,p2,...,pT−1均为核心点,因为只有核心点才能使其他样本密度直达。注意密度可达也不满足对称性,这个可以由密度直达的不对称性得出。
5)密度相连:对于xi和xj,如果存在核心点xk,使xi和xj均由xk密度可达,则称xi和xj密度相连。注意密度相连关系是满足对称性的。
从下图中可以很容易看出理解上述定义,图中MinPts=5,红色的点都是核心点,因为其ϵ-邻域至少有5个样本。黑色的样本是非核心点。所有核心点密度直达的样本在以红色核心点为中心的超球体(n维)内,如果不在超球体内,则不能密度直达。图中用绿色箭头连起来的核心点组成了密度可达的样本序列。在这些密度可达的样本序列的ϵ-邻域内所有的样本相互都是密度相连的。