机器学习理论 | 周志华西瓜书 第九章:聚类

第九章 聚类

此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…


9.1 聚类任务

无监督学习:训练样本标记位置,学习揭示内在规律,分类任务等前驱过程
将数据集划分为若干互不相交的子集(簇:cluster)

9.2 性能度量

1、概念

  • 内相似度(intra-cluster similarity)
  • 簇间相似度(inter-cluster similarity)

2、指标

  • 外部指标(external index):将聚类结果与某个参考模型(reference model)进行比较
    常用的聚类性能度量外部指标(a=SS,b=SD,c=DS,d=DDa=|SS|,b=|SD|,c=|DS|,d=|DD|):

    • Jaccard系数(Jaccard Coefficient, JC):JC=aa+b+cJC=\frac a {a+b+c}
    • FM指数(Fowlkes and Mallows Index, FMI):FMI=aa+baa+cFMI=\sqrt{\frac{a}{a+b}*\frac{a}{a+c}}
    • Rand指数(Rand Index, RI):RI=2(a+d)m(m1)RI=\frac{2(a+d)}{m(m-1)}
  • 内部指标(internal index):直接考察结果
    聚类结果的簇划分C={C1,C2,…Ck},定义:

    • avg(C)=2C(C1)1i<jCdist(xi,xj)avg(C)=\frac{2}{|C|(|C|-1)}\sum_{1≤i<j≤|C|}dist(\bm x_i,\bm x_j)
    • diam(C)=max1i<jCdist(xi,xj)diam(C)=max_{1≤i<j≤|C|}dist(\bm x_i,\bm x_j)
    • dmin(Ci,Cj)=minxiCi,xjCjdist(xi,xj)d_{min}(C_i,C_j)=min_{\bm x_i\in C_i,\bm x_j\in C_j}dist(\bm x_i,\bm x_j)
    • dcen(Ci,Cj)=dist(μi,μj)d_{cen}(C_i,C_j)=dist(\bm \mu_i,\bm\mu_j)

    导出内部指标

    • DB指数(Davies-Bouldin Index, DBI):
      DBI=1ki=1kmaxji(avg(Ci)+avg(Cj)dcen(Ci,Cj))DBI=\frac 1 k\sum_{i=1}^kmax_{j≠i}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)})
    • Dunn指数(Dunn Index, DI):
      DI=min1ik{minji(dmin(Ci,Cj)max1lkdiam(Cl))}DI=min_{1≤i≤k}\{min_{j≠i}(\frac{d_{min}(C_i,C_j)}{max_{1≤l≤k}diam(C_l)})\}
    • DBI越小越好,DI越大越好

9.3 距离计算

1、距离度量的基本性质
非负性:dist(xi,xj)0dist(\bm x_i, \bm x_j)≥0
同一性:dist(xi,xj)=0dist(\bm x_i,\bm x_j)=0当且仅当xi=xj\bm x_i=\bm x_j
对称性:dist(xi,xj)=dist(xj,xi)dist(\bm x_i,\bm x_j)=dist(\bm x_j,\bm x_i)
直递性:dist(xi,xj)dist(xi,xk)+dist(xk,xj)dist(\bm x_i,\bm x_j)≤dist(\bm x_i,\bm x_k)+dist(\bm x_k,\bm x_j)(三角不等式)

2、最常用:闵可夫斯基距离(Minkowski distance)
distmk(xi,xj)=(u=1nxiuxjup)1pdist_{mk}(\bm x_i,x_j)=(\sum_{u=1}^n|x_{iu}-x_{ju}|^p)^{\frac 1 p}
p=∞:切贝雪夫距离
p=2:欧式距离:disted(xi,xj)=xixj2=u=1nxiuxju2dist_{ed}(\bm x_i,\bm x_j)=||\bm x_i-\bm x_j||_2=\sqrt{\sum_{u=1}^n|x_{iu}-x_{ju}|^2}
p=1:曼哈顿距离:distman(xi,xj)=xixj1=u=1nxiuxju2dist_{man}(\bm x_i,\bm x_j)=||\bm x_i-\bm x_j||_1=\sum_{u=1}^n|x_{iu}-x_{ju}|^2

3、几个概念
连续属性/离散属性:定义域上有无穷/有限取值
有序属性:可采用闵可夫斯基距离
无序属性:可采用VDM(Value Difference Metric):VDMp(a,b)=i=1kmu,a,imu,amu,b,imu,bVDM_p(a,b)=\sum_{i=1}^k|\frac{m_{u,a,i}}{m_{u,a}}-\frac {m_{u,b,i}}{m_{u,b}}|
相似度度量:非度量距离(距离大相似小,未必满足度量距离性质,尤其直递性)
距离度量学习:基于数据样本来确定合适的距离计算式

4、一些做法
将闵可夫斯基距离和VDM结合(可处理混合属性):
加权闵可夫斯基距离(样本空间不同属性的重要性不同时):

9.4 原型聚类

0、基本想法:假设聚类结构能通过一组原型刻画(在现实聚类任务中极为常用)

1、k均值算法

  • 最小化平方和误差:E=i=1kxCixμi22E=\sum_{i=1}^k\sum_{\bm x\in C_i}||\bm x-\bm\mu_i||_2^2

    • 样本集:D={x1,x2,...xm}D=\{\bm x_1,\bm x_2,...\bm x_m\}
    • 簇划分:C={C1,C2,...,Ck}\mathcal{C}=\{C_1,C_2,...,C_k\}
    • 簇Ci的均值向量:μi=1CixCix\bm\mu_i=\frac 1 {|C_i|}\sum_{\bm x\in C_i}\bm x
  • 采用贪心策略,通过迭代优化来近似求解上述最小化平方误差的解

  • k均值算法在这里插入图片描述

  • 算法测试结果
    在这里插入图片描述

2、学习向量量化(Learning Vector Quantization, LVQ)

  • 假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类
  • 算法在这里插入图片描述
  • Voronoi划分
    Ri={xX xpi2xpi2,ii}R_i=\{\bm x\in\mathcal{X}|\ ||\bm x-\bm p_i||_2≤||\bm x-\bm p_{i'}||_2,i'≠i\}
  • 算法测试结果
    在这里插入图片描述

3、高斯混合聚类(Mixture of Gaussian)

  • 多元高斯分布概率密度函数:p(x)=1(2π)n2Σ12e12(xμ)TΣ1(xμ)p(\bm x)=\frac{1}{(2\pi)^{\frac n 2}|\bm\Sigma|^{\frac 1 2}}e^{-\frac 1 2(\bm x-\bm\mu)^T\bm\Sigma^{-1}(\bm x-\bm\mu)}
  • 高斯混合分布函数:pM(x)=i=1kαip(xμi,Σi)p_M(\bm x)=\sum_{i=1}^k\alpha_i*p(\bm x|\bm\mu_i,\bm\Sigma_i)
    性质:k个混合成分组成(每个对应一个高斯分布)
    混合系数:i=1kαi=1\sum_{i=1}^k\alpha_i=1
  • 假设样本生成过程由高斯分布给出
    1.根据a1,a2,…ak定义的先验分布选择高斯混合成分(ai为选择第i个混合成分概率)
    2.根据被选择的混合成分的概率密度函数进行采样,生成相应的样本
    3.若训练集D由上述过程生成,令随机变量zj={1,2,…k}表示生成样本xj的高斯混合成分,取值未知
    4.样本xj由第i个高斯混合成分生成的后验概率
  • 模型参数求解
    极大似然估计
    采用EM算法进行迭代优化求解
  • 算法
    在这里插入图片描述

9.5 密度聚类

0、基本想法:假设聚类结构能通过样本分布的紧密程度决定
1、著名密度聚类算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)

  • 思想:基于一组领域参数来刻画样本分布的紧密程度
  • 基本概念
    在这里插入图片描述
    • ε-邻域:对xjD\bm x_j\in D,ϵ\epsilon-邻域包含样本集D中与xj\bm x_j的距离不大于ϵ\epsilon的样本,即Nϵ(xj)={xjDdist(xi,xj)ϵ}N_{\epsilon}(\bm x_j)=\{\bm x_j\in D |dist(\bm x_i,\bm x_j)≤\epsilon\}
    • 核心对象:若xj\bm x_jϵ\epsilon-邻域至少包含MinPts个样本,即Nϵ(xj)MinPts|N_{\epsilon}(\bm x_j)|≥MinPts,则xj\bm x_j是一个核心对象
    • 密度直达:若xj\bm x_j位于xi\bm x_iϵ\epsilon-邻域中,且xi\bm x_i是核心对象,则称xj\bm x_jxi\bm x_i密度直达
    • 密度可达:对xi\bm x_ixj\bm x_j,若存在样本系列p1,p2,...pn\bm{p_1,p_2,...p_n},其中p1=xi\bm p_1=\bm x_ipn=xj\bm p_n=\bm x_jpi+1\bm p_{i+1}pi\bm p_i密度直达,则称xj\bm x_jxi\bm x_i密度可达
    • 密度相连:对xi\bm x_ixj\bm x_j,若存在xk\bm x_k使得xi\bm x_ixj\bm x_j均由xk\bm x_k密度可达,则称xi\bm x_ixj\bm x_j密度相连
  • DBSCAN对簇的定义
    • 由密度可达关系导出的最大的密度相连样本集合
    • 给定领域参数(E,MinPts),簇C是满足以下性质的非空样本子集
      连接性(connectivity):xiC,xjC\bm x_i\in C,\bm x_j\in C\Rightarrowxi\bm x_ixj\bm x_j密度相连
      最大型(maximality):xiC,\bm x_i\in C,xj\bm x_jxi\bm x_i密度可达xjC\Rightarrow \bm x_j\in C
  • 算法
    在这里插入图片描述
  • 算法测试结果
    在这里插入图片描述

9.6 层次聚类

0、基本想法:试图在不同层次对数据集进行划分,从而形成树形的聚类结构

1、自底向上的聚合策略: AGglomerative NESting(AGNES)

  • 算法过程
    1.将数据集中的每个样本看做一个初始聚类簇
    2.在运行的每一步找出距离最近两个簇并合并
    3.重复,直到达到预设的聚类簇个数

  • 集合的距离
    通常采用:Hausdorff distance
    在这里插入图片描述

    注意:当聚类簇距离由dmin、dmaz或davg计算时,AGNES算法被相应地成为单链接、全链接或均链接算法

  • 算法
    在这里插入图片描述

  • 算法测试结果
    在这里插入图片描述
    在这里插入图片描述
    2、自顶向下的分拆策略:DIANA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章