基于密度的聚类方法DBSCAN及其Python实现
0. 基于密度的聚类方法
之前介绍过基于划分的聚类算法,如k-means和k-medoids,也介绍过基于层次聚类的方法。这两种方法本质上都是基于距离的算法,只能发现类圆形的聚类。
基于密度的方法(Density-based Methods)是基于密度的,可以克服基于距离的算法只能发现“类圆形”聚类的缺点。
主要思想:只要在给定半径邻近区域的密度超过某个阈值,就把它添加到与之相近的簇类中去。
这样的方法可以用来过滤噪声数据,并且可以发现任意形状的聚类。
基于密度的方法中,代表算法有:
- DBSCAN算法
- OPTICS算法
- DENCLUE算法
以下对DBSCAN(Density Based Spatial Clustering of Applications with Noise,DBSCAN)聚类算法进行介绍。
1. DBSCAN聚类算法的相关概念
DBSCAN是基于密度聚类中的经典算法,突出特色在于:
- 第一,利用小类的密度可达性(或称连通性),可发现任意形状的小类
- 第二,聚类同时可以发现数据中的噪声,也即离群点
DBSCAN聚类中有两个重要参数:
- 邻域半径 ε \varepsilon ε;
- 邻域半径 ε \varepsilon ε范围内包含的最少观测点个数,记为 m i n P t s minPts minPts。
基于这两个参数,DBSCAN聚类将样本观测点分成以下4类:
- 核心点(核心样本) P P P:若任意样本观测点 O O O的邻域半径 ε \varepsilon ε内的邻居个数不少于 m i n P t s minPts minPts,则称 O O O为核心点,记作 P P P
- 核心点 P P P的直接密度可达点 Q Q Q:若任意样本观测点 Q Q Q在核心点 P P P的邻域半径 ε \varepsilon ε范围内,则称点 Q Q Q为核心点 P P P的直接密度可达点。也称从点 P P P直接密度可达点 Q Q Q
- 核心点 P P P的密度可达点 Q Q Q:若存在一系列样本观测点 O 1 , O 2 , … , O n O_1, O_2, …, O_n O1,O2,…,On,且 O i + 1 ( i = 1 , 2 , . . . , n − 1 ) O_{i+1}(i=1,2,...,n-1) Oi+1<