三、密度聚类

  1. 密度聚类density-based clustering假设聚类结构能够通过样本分布的紧密程度确定。
  2. 密度聚类算法从样本的密度的角度来考察样本之间的可连接性,并基于可连接样本的不断扩张聚类簇,从而获得最终的聚类结果。

3.1 DBSCAN 算法

  1. DBSCAN是一种著名的密度聚类算法,它基于一组邻域参数 三、密度聚类 - 图1 来刻画样本分布的紧密程度。

  2. 给定数据集 三、密度聚类 - 图2, 定义:

    • 三、密度聚类 - 图3 -邻域: 三、密度聚类 - 图4

      即:三、密度聚类 - 图5 包含了样本集 三、密度聚类 - 图6 中与 三、密度聚类 - 图7 距离不大于 三、密度聚类 - 图8 的所有的样本。

    • 核心对象core object:若 三、密度聚类 - 图9 ,则称 三、密度聚类 - 图10 是一个核心对象。

      即:若 三、密度聚类 - 图11三、密度聚类 - 图12 -邻域中至少包含 三、密度聚类 - 图13 个样本,则 三、密度聚类 - 图14 是一个核心对象。

    • 密度直达directyl density-reachable:若 三、密度聚类 - 图15 是一个核心对象,且 三、密度聚类 - 图16, 则称 三、密度聚类 - 图17三、密度聚类 - 图18 密度直达,记作 三、密度聚类 - 图19

    • 密度可达density-reachable:对于 三、密度聚类 - 图20三、密度聚类 - 图21, 若存在样本序列 三、密度聚类 - 图22, 其中 三、密度聚类 - 图23,如果 三、密度聚类 - 图24三、密度聚类 - 图25 密度直达,则称 三、密度聚类 - 图26三、密度聚类 - 图27 密度可达,记作 三、密度聚类 - 图28

    • 密度相连density-connected:对于 三、密度聚类 - 图29三、密度聚类 - 图30,若存在 三、密度聚类 - 图31 ,使得 三、密度聚类 - 图32三、密度聚类 - 图33 均由 三、密度聚类 - 图34 密度可达,则称 三、密度聚类 - 图35三、密度聚类 - 图36 密度相连 ,记作 三、密度聚类 - 图37

  3. DBSCAN算法的簇定义:给定邻域参数 三、密度聚类 - 图38 , 一个簇 三、密度聚类 - 图39 是满足下列性质的非空样本子集:

    • 连接性 connectivity: 若 三、密度聚类 - 图40 ,则 三、密度聚类 - 图41
    • 最大性maximality:若 三、密度聚类 - 图42,且 三、密度聚类 - 图43, 则 三、密度聚类 - 图44

    即一个簇是由密度可达关系导出的最大的密度相连样本集合。

  4. DBSCAN算法的思想:若 三、密度聚类 - 图45 为核心对象,则 三、密度聚类 - 图46 密度可达的所有样本组成的集合记作 三、密度聚类 - 图47 。可以证明 :三、密度聚类 - 图48 就是满足连接性与最大性的簇。

    于是 DBSCAN算法首先任选数据集中的一个核心对象作为种子seed,再由此出发确定相应的聚类簇。

  5. DBSCAN算法:

    • 输入:

      • 数据集 三、密度聚类 - 图49
      • 邻域参数 三、密度聚类 - 图50
    • 输出: 簇划分 三、密度聚类 - 图51

    • 算法步骤:

      • 初始化核心对象集合为空集: 三、密度聚类 - 图52

      • 寻找核心对象:

        • 遍历所有的样本点 三、密度聚类 - 图53, 计算 三、密度聚类 - 图54
        • 如果 三、密度聚类 - 图55 ,则 三、密度聚类 - 图56
      • 迭代:以任一未访问过的核心对象为出发点,找出有其密度可达的样本生成的聚类簇,直到所有核心对象都被访问为止。
  6. 注意:

    • 若在核心对象 三、密度聚类 - 图57 的寻找密度可达的样本的过程中,发现核心对象 三、密度聚类 - 图58 是由 三、密度聚类 - 图59 密度可达的,且 三、密度聚类 - 图60 尚未被访问,则将 三、密度聚类 - 图61 加入 三、密度聚类 - 图62 所属的簇,并且标记 三、密度聚类 - 图63 为已访问。
    • 对于 三、密度聚类 - 图64 中的样本点,它只可能属于某一个聚类簇。因此在核心对象 三、密度聚类 - 图65 的寻找密度可达的样本的过程中,它只能在标记为未访问的样本中寻找 (标记为已访问的样本已经属于某个聚类簇了)。
  7. DBSCAN 算法的优点:

    • 簇的数量由算法自动确定,无需人工指定。
    • 基于密度定义,能够对抗噪音。
    • 可以处理任意形状和大小的簇。
  8. DBSCAN 算法的缺点:

    • 若样本集的密度不均匀,聚类间距差相差很大时,聚类质量较差。因为此时参数 三、密度聚类 - 图66三、密度聚类 - 图67 的选择比较困难。
    • 无法应用于密度不断变化的数据集中。

3.2 Mean-Shift 算法

  1. Mean-Shift 是基于核密度估计的爬山算法,可以用于聚类、图像分割、跟踪等领域。

  2. 给定 三、密度聚类 - 图68 维空间的 三、密度聚类 - 图69 个样本组成的数据集 三、密度聚类 - 图70,给定一个中心为 三、密度聚类 - 图71 、半径为 三、密度聚类 - 图72 的球形区域 三、密度聚类 - 图73 (称作兴趣域),定义其mean shift 向量为:三、密度聚类 - 图74

  3. Mean-Shift 算法的基本思路是:

    • 首先任选一个点作为聚类的中心来构造兴趣域

    • 然后计算当前的mean shift 向量,兴趣域的中心移动为:三、密度聚类 - 图75

      移动过程中,兴趣域范围内的所有样本都标记为同一个簇。

    • 如果mean shift 向量为 0 ,则停止移动,说明兴趣域 已到达数据点最密集的区域。

    因此Mean-Shift 会向着密度最大的区域移动。

    下图中:蓝色为当前的兴趣域,红色为当前的中心点 三、密度聚类 - 图76;紫色向量为mean shift 向量 三、密度聚类 - 图77 ,灰色为移动之后的兴趣域

    mean_shift

  4. 在计算mean shift 向量的过程中假设每个样本的作用都是相等的。实际上随着样本与中心点的距离不同,样本对于mean shift 向量的贡献不同。

    定义高斯核函数为:三、密度聚类 - 图79 ,则重新mean shift 向量定义为:

    三、密度聚类 - 图80

    其中 三、密度聚类 - 图81 称做带宽。 三、密度聚类 - 图82 刻画了样本 三、密度聚类 - 图83 距离中心点 三、密度聚类 - 图84 相对于半径 三、密度聚类 - 图85 的相对距离。

  5. Mean_Shift 算法:

    • 输入:

      • 数据集 三、密度聚类 - 图86
      • 带宽参数 三、密度聚类 - 图87
      • 迭代阈值 三、密度聚类 - 图88 ,簇阈值 三、密度聚类 - 图89
    • 输出: 簇划分 三、密度聚类 - 图90

    • 算法步骤:

      迭代,直到所有的样本都被访问过。迭代过程为(设已有的簇为 三、密度聚类 - 图91 ):

      • 在未访问过的样本中随机选择一个点作为中心点 三、密度聚类 - 图92 ,找出距它半径为 三、密度聚类 - 图93兴趣域,记做 三、密度聚类 - 图94

        三、密度聚类 - 图95 中的样本的簇标记设置为 三、密度聚类 - 图96 ( 一个新的簇)。

      • 计算当前的mean shift 向量,兴趣域中心的移动为:

        三、密度聚类 - 图97

        在移动过程中,兴趣域内的所有点标记为访问过,并且将它们的簇标记设置为 三、密度聚类 - 图98

      • 如果 三、密度聚类 - 图99 ,则本次结束本次迭代。

      • 设已有簇中,簇 三、密度聚类 - 图100 的中心点 三、密度聚类 - 图101三、密度聚类 - 图102 距离最近,如果 三、密度聚类 - 图103,则将当前簇和簇 三、密度聚类 - 图104 合并。

        合并时,当前簇中的样本的簇标记重新修改为 三、密度聚类 - 图105

      当所有的样本都被访问过时,重新分配样本的簇标记(因为可能有的样本被多个簇标记过):若样本被多个簇标记过,则选择最大的那个簇作为该样本的簇标记。即:尽可能保留大的簇。

  6. 可以证明:Mean_Shift 算法每次移动都是向着概率密度函数增加的方向移动。

    三、密度聚类 - 图106 维欧式空间中,对空间中的点 三、密度聚类 - 图107 的概率密度估计为:

    三、密度聚类 - 图108

    其中:

    • 三、密度聚类 - 图109 表示空间中的核函数,三、密度聚类 - 图110 为带宽矩阵。
    • 通常 三、密度聚类 - 图111 采用放射状对称核函数 三、密度聚类 - 图112三、密度聚类 - 图113三、密度聚类 - 图114 的轮廓函数, 三、密度聚类 - 图115 (一个正数)为标准化常数从而保证 三、密度聚类 - 图116 的积分为 1 。
    • 通常带宽矩阵采用 三、密度聚类 - 图117三、密度聚类 - 图118 为带宽参数。

    因此有:三、密度聚类 - 图119 。则有梯度:

    三、密度聚类 - 图120

    三、密度聚类 - 图121 的导数为 三、密度聚类 - 图122 。取 三、密度聚类 - 图123 为新的轮廓函数,三、密度聚类 - 图124 (一个正数)为新的标准化常数, 三、密度聚类 - 图125

    则有:

    三、密度聚类 - 图126

    定义 三、密度聚类 - 图127 ,则它表示基于核函数 三、密度聚类 - 图128 的概率密度估计,始终为非负数。

    根据前面定义:三、密度聚类 - 图129,则有:三、密度聚类 - 图130

    因此 三、密度聚类 - 图131 正比于 三、密度聚类 - 图132 ,因此mean shift 向量的方向始终指向概率密度增加最大的方向。

    上式计算 三、密度聚类 - 图133 时需要考虑所有的样本,计算复杂度太大。作为一个替代,可以考虑使用 三、密度聚类 - 图134 距离 三、密度聚类 - 图135 内的样本,即兴趣域 内的样本。即可得到:三、密度聚类 - 图136

  7. Mean-Shift 算法优点:

    • 簇的数量由算法自动确定,无需人工指定。
    • 基于密度定义,能够对抗噪音。
    • 可以处理任意形状和大小的簇。
    • 没有局部极小值点,因此当给定带宽参数 三、密度聚类 - 图137 时,其聚类结果就是唯一的。
  8. Mean_Shift 算法缺点:

    • 无法控制簇的数量。
    • 无法区分有意义的簇和无意义的簇。如:在Mean_Shift 算法中,异常点也会形成它们自己的簇。