密度聚类:desity-based clustering
此类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本的密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN是著名的密度聚类算法。它常常用于异常检测,他的注意力放在离群点上,所以,当遇到无监督的检测任务时,他是首选。
一些概念
-
DBSCAN: 基于一组邻域(neighborhood)参数来刻画样本分布的紧密程度,给定数据集D=x1,x2,…xm,定义一下几个概念:
-
ϵ-邻域:对xj∈D,其ϵ−邻域包含样本集D中与xj的距离不大于ϵ样本,即
-
核心对象(core object):若xj的ϵ−邻域至少包含MinPts个样本,即∣Nϵ(xj)∣≥MinPts,则xj是一个核心对象
-
密度直达(directly density-reachable):若xj位于xi的ϵ−邻域中,且xi是核心对象,则称xj由xi密度直达
-
密度可达(density-reachable):对xi与xj,若存在样本序列p1,p2,…,pn,其中p1=xi,pn=xj且p(i+1)由pi密度直达,则称xj由xi密度可达
-
密度相连(density-connected): 对xi与xj,若存在xk使得xi与xj均由xk密度可达,则称xi与xj密度相连
例子
DBSCAN
基于以上概念,DBSCAN将“簇”定义为:由密度可达关系导出的最大的密度相连的样本集合。
DBSCAN算法先任选数据集中的一个核心对象为“种子”(seed),再有此初法确定相应的聚类簇。算法过程为:
1. 根据给定邻域参数(ϵ,MinPts)找出所有核心对象;
2. 以任一核心对象除法,找出其密度可达的样本生成聚类簇,直到所有核心对象均被访问过为止。
优点
- 可以对任一形状的稠密数据集进行聚类,K-means一般只适用于球状数据集
- 非常适合检测任务,寻找离群点
- 不需要手动指定聚类的堆数(实际很难知道大致的堆数)
缺点
- 样本集密度不均或聚类间距相差很大时,聚类效果较差
- 半径的选择比较难,不同半径的结果差异非常大