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