其他机器学习系列文章见于专题:机器学习进阶之路——学习笔记整理,欢迎大家关注。

1. 密度聚类

  密度聚类假设聚类结构能够通过样本分布的紧密程度确定,其主要思想是:通过样本之间是否紧密相连来判断样本点是否属于同一个簇。

  这类算法能克服基于距离的算法(如K-Means)只能发现凸聚类的缺点,可以发现任意形状的聚类,且对噪声数据不敏感,但计算密度大暖的计算复杂度大,需要建立空间索引来降低计算量。

2. DBSCAN算法

  DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种著名的密度聚类算法。

用一个样本点的基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法领域内的样本数目来表征该样本所在的空间密度,由密度可达关系导出的最大的密度相连样本集合就是聚类得到的一个“簇”。该算法能够把密度足够高的区域划分为“簇”,并且可以在有“噪声”的数据中发现任意形状的聚类。

基于密度的KNN聚类算法 密度聚类应用场景_机器学习_02,DBSCAN的一些概念如下:

基于密度的KNN聚类算法 密度聚类应用场景_聚类_03-邻域:即对于样本点基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04,和它的距离在基于密度的KNN聚类算法 密度聚类应用场景_聚类_03之内的属于样本集基于密度的KNN聚类算法 密度聚类应用场景_密度聚类_06中的点的集合,即基于密度的KNN聚类算法 密度聚类应用场景_机器学习_07

基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_聚类_03邻域至少包含基于密度的KNN聚类算法 密度聚类应用场景_聚类_10个样本,即基于密度的KNN聚类算法 密度聚类应用场景_密度聚类_11,那么基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04是一个核心对象;

基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04位于核心对象基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_14基于密度的KNN聚类算法 密度聚类应用场景_聚类_03邻域内,则称基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_14密度直达;

基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_18基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_DBSCAN_20是直达的,基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_21基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_22,且基于密度的KNN聚类算法 密度聚类应用场景_机器学习_23基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_24密度直达,则称基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_14密度可达;

基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_14,若存在点基于密度的KNN聚类算法 密度聚类应用场景_聚类_29使得基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_14均可由基于密度的KNN聚类算法 密度聚类应用场景_聚类_29密度可达,则称基于密度的KNN聚类算法 密度聚类应用场景_机器学习_04基于密度的KNN聚类算法 密度聚类应用场景_基于密度的KNN聚类算法_14密度相连。

  基于密度定义,我们将点分为核心点、边缘点和噪声。

  1. 核心点:也就是核心对象;
  2. 边缘点:可由某和新对象密度可达的样本点;
  3. 噪音点:任何既不是核心点,也不是边缘点的样本点;

基于密度的KNN聚类算法 密度聚类应用场景_聚类_35

基于密度的KNN聚类算法 密度聚类应用场景_聚类_36找出所有核心对象,然后以任一核心对象为出发点,找出由其密度可达的样本生成聚类簇,直到所有核心对象都被访问过。

3. DBSCAN优缺点

  优点:

    1. 不需要先给定簇的数目;

    2. 可以发现任意形状的簇;

    3. 可以发现异常点当做噪声,对异常点不敏感;

  缺点:

    1. 当数据集密度差异很大时,聚类质量较差;
(非平面几何,不均匀的簇大小)

    2. 数据集较大时,聚类收敛时间长;

    3. 算法聚类效果依赖于距离公式选取,实际应用中常用欧式距离,但对于高维数据,存在“维数灾难”。

参考文献:

  1. 《机器学习》第九章聚类——周志华
  2. DBSCAN密度聚类算法
  3. 机器学习sklearn19.0聚类算法——层次聚类(AGNES/DIANA)、密度聚类(DBSCAN/MDCA)、谱聚类
  4. DBSCAN基于密度的聚类算法