密度聚类
K-Means算法、K-Means++ 算法和Mean Shift 算法都是基于距离的聚类算法,基于距离的聚类算法的聚类结果都是球状的簇
当数据集中的聚类结果是非球状结构是,基于距离的聚类效果并不好
基于密度的聚类算法能够很好的处理非球状结构的数据,与基于距离的聚类算法不同的是,基于密度的聚类算法可以发现任意形状的簇类。
在基于密度的聚类算法中,通过在数据集中寻找别低密度区域分离的高密度区域,将分离出来的高密度区域作为一个独立的类别。
密度聚类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN是一种典型的基于密度的聚类算法。,它基于一组“邻域参数(ε,MinPts)来刻画样本分布的紧密程度。
给定数据集 D = { x 1 , x 2 … … x m } D=\{x_1,x_2……x_m\} D={
x1,x2……xm},定义下面几个概念:
1)ε邻域:对 x j ∈ D x_j∈D xj∈D,其ε邻域包含数据集D中与 x j x_j xj的距离不大于ε的样本,即
N ε ( x j ) = { x i ∈ D ∣ d i s t ( x i , x j ) ≤ ε } N_ε(x_j)=\{x_i∈D|dist(x_i,x_j)≤ε\} Nε(xj)={
xi∈D∣dist(xi,xj)≤ε}
2) 核心对象:若 x j x_j xj的ε邻域至少包含MinPts个样本,即 ∣ N ε ( x j ) ∣ ≥ M i n P t s |N_ε(x_j)|≥MinPts ∣Nε(xj)∣≥MinPts,则 x j x_j xj是一个核心对象
3)边界对象:若 x j x_j xj的ε邻域内的样本个数少于MinPts,但是 x j x_j xj落在其他核心对象的ε邻域内,则 x j x_j