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