機器學習理論 | 周志華西瓜書 第九章:聚類

第九章 聚類

此係列文章旨在提煉周志華《機器學習》的核心要點,不斷完善中…


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

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