其他机器学习系列文章见于专题:机器学习进阶之路——学习笔记整理,欢迎大家关注。
1. 密度聚类
密度聚类假设聚类结构能够通过样本分布的紧密程度确定,其主要思想是:通过样本之间是否紧密相连来判断样本点是否属于同一个簇。
这类算法能克服基于距离的算法(如K-Means)只能发现凸聚类的缺点,可以发现任意形状的聚类,且对噪声数据不敏感,但计算密度大暖的计算复杂度大,需要建立空间索引来降低计算量。
2. DBSCAN算法
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种著名的密度聚类算法。
用一个样本点的领域内的样本数目来表征该样本所在的空间密度,由密度可达关系导出的最大的密度相连样本集合就是聚类得到的一个“簇”。该算法能够把密度足够高的区域划分为“簇”,并且可以在有“噪声”的数据中发现任意形状的聚类。
,DBSCAN的一些概念如下:
-邻域:即对于样本点
,和它的距离在
之内的属于样本集
中的点的集合,即
;
的
邻域至少包含
个样本,即
,那么
是一个核心对象;
位于核心对象
的
邻域内,则称
由
密度直达;
,
到
是直达的,
,
,且
由
密度直达,则称
由
密度可达;
和
,若存在点
使得
和
均可由
密度可达,则称
和
密度相连。
基于密度定义,我们将点分为核心点、边缘点和噪声。
- 核心点:也就是核心对象;
- 边缘点:可由某和新对象密度可达的样本点;
- 噪音点:任何既不是核心点,也不是边缘点的样本点;
找出所有核心对象,然后以任一核心对象为出发点,找出由其密度可达的样本生成聚类簇,直到所有核心对象都被访问过。
3. DBSCAN优缺点
优点:
1. 不需要先给定簇的数目;
2. 可以发现任意形状的簇;
3. 可以发现异常点当做噪声,对异常点不敏感;
缺点:
1. 当数据集密度差异很大时,聚类质量较差;
(非平面几何,不均匀的簇大小)
2. 数据集较大时,聚类收敛时间长;
3. 算法聚类效果依赖于距离公式选取,实际应用中常用欧式距离,但对于高维数据,存在“维数灾难”。
参考文献:
- 《机器学习》第九章聚类——周志华
- DBSCAN密度聚类算法
- 机器学习sklearn19.0聚类算法——层次聚类(AGNES/DIANA)、密度聚类(DBSCAN/MDCA)、谱聚类
- DBSCAN基于密度的聚类算法