密度聚类(DBSCAN)

DBSCAN

基本概念与算法原理

有数据集 D={x1, x2, ..., xm} , 参数 param={ϵ, MinPts}
有如下基本概念:

  • ϵ -邻域:数据集 D 中除 xi 外的其他样本与 xi 距离小于 ϵ 的样本集合。记作 Nϵ(xj)={xjD|dist(xi,xj)ϵ}.
  • 核心对象(Core Object):若 xj ϵ -邻域中样本数量大于 MinPts ,则样本 xj 核心对象。记作 |Nϵ(xj)|MinPts.
  • 密度直达(Directly Density-Reachable):若样本 xi xj ϵ -邻域中的样本( xiNϵ(xj) ),则 xi xj 密度直达.
  • 密度可达(Density-Reachable):存在样本序列 P1, P2, , ... , Pn ,其中 P1 的核心对象为 xi Pn 的核心对象为 xj ,且 Pi+1 Pi 密度直达,则 xi xj 密度可达.
  • 密度相连(Density-Connected): xkD ,使 xi xj 均由 xk 密度可达,则 xi xj 密度相连.

图例:
密度聚类(DBSCAN)_第1张图片

由此,我们可由密度可达关系导出最大密度相连样本集合。
给定参数 param={ϵ, MinPts} ,簇 ClusterD 满足:

  • 连接性(Connectivity): XiC xjC xi xj 密度相连.
  • 最大性(Maximality): xiC xi xj 密度可达,则 xjC .

从选定的核心点出发,不断向密度可达的 ϵ -邻域扩张,得到一个包含核心点和边界点的最大化区域,区域中任意两点密度相连。

算法原理

密度聚类(DBSCAN)_第2张图片

sklearn有对应的包:

class sklearn.cluster.DBSCAN(eps=0.5,
                             min_samples=5,
                             metric=’euclidean’,
                             metric_params=None,
                             algorithm=’auto’,
                             leaf_size=30,
                             p=None,
                             n_jobs=1)

Reference

Ester M, Kriegel H P, Xu X. A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise[C]// International Conference on Knowledge Discovery and Data Mining. AAAI Press, 1996:226-231.

你可能感兴趣的:(聚类)