模式識別與機器學習(二)

範中豪發表於2019-07-13

視屏連結

類間距離測度方法

  1. 最近距離法

    \(D_{kl} = min_{i,j} \lfloor d_{ij}\rfloor {a}\)
    \(d_{ij}\)表示 \(\vec x_i \in w_k\)\(\vec x_j \in w_l\) 之間的距離
    用於鏈式結構分佈的資料中

模式識別與機器學習(二)

  1. 最遠距離法

    \(D_{kl} = max_{i,j} \lfloor d_{ij}\rfloor {a}\)
    \(d_{ij}\)表示 \(\vec x_i \in w_k\)\(\vec x_j \in w_l\) 之間的距離

模式識別與機器學習(二)

  1. 中間距離法

    $D^2_{kl} = \frac{1}{2} D^2_{kp} + \frac{1}{2} D^2_{kq} - \frac{1}{4}D^2_{pq} $
    假設有兩類p,q,取p和q的並集為類\(l\),p和q的中點記作\(D_{pq}\),集合\(k\)到集合\(l\)的距離就為集合\(k\)\(D_{pq}\)的距離。

  2. 重心距離法

    兩類之間的重心的距離。
    \(D^2_{kl} = \frac{n_p}{n_p + n_q}D_{kp}^2+\frac{n_q}{n_p+n_q}D^2_{kq}-\frac{n_p n_q}{(n_p+n_q)^2}D_{pq}^2\)
    其中,\(n_p\),\(n_q\)分別為類\(w_p\)\(w_q\)的樣本個數

模式識別與機器學習(二)

  1. 平均距離法

    \(D^2_{pq} = \frac{1}{n_p n_q} \sum_{\vec x_i \in w_p,\\ \vec x_j \in w_q} d^2_{ij}\)
    兩類之間所有點之間距離的均值

模式識別與機器學習(二)

  1. 離差平方和法

    \(s_l = \sum_{\vec x_i \in w_l} (\vec x_i - \vec x_l)^`(\vec x_i - \vec x_l)\)
    \(w_t = w_p \bigcup w_q \\ D^2_{pq} = s_l - s_p - s_q\)
    \(\downarrow \downarrow\)
    \(D^2_{pq} = \frac{n_p n_q}{n_p + n_q}(\vec x_p - \vec x_q)^`(\vec x_p - \vec x_q)\)
    \(\vec x_l \vec x_p \vec x_q\)分別為對應類的重心,遞推公式為:
    \(D^2_{kl} = \frac{n_k + n_p}{n_k + n_l}D^2_{kp} + \frac{n_k + n_q}{n_k + n_l}D^2_{kq} - \frac{n_k}{n_k + n_l}D^2_{pq}\)
    即:類中的各個模式離均值的偏差的平方和
    該定義適用於團狀分佈

點與集合間的距離


  • 第一類: 對集合的分佈沒有先驗知識時,可採用類間距離計算方法進行

  • 第二類: 當知道集合的中點分佈的先驗知識時,可用相應的模型進行計算(點模型,超平面模型,超球面模型等)

判別分類結果好壞的一般標準: 類內距離小,類間距離大

聚類的準則函式

類內距離準則:

設有待分類的模式集{\(\vec{x_1},\vec x_2,...,\vec x_N\)}在某種相似性測度基礎上被劃分為\(C\)類,{\(\vec x_i^{(j)}; j=1,2,...c;i=1,2,...,n_j\)}類內距離準則函式\(J_W\)定義為:(\(\vec m_j\) 表示 \(w_j\)類的模式均值向量。)
\[ J_W = \sum^c_{j=1} \sum_{i=1}^{n_j} ||\vec x_i^{(j)} - \vec m_j ||^2 \]

類間距離準則
\[ J_B = \sum_{j=1}^c (\vec m_j - \vec m)^`(\vec m_j - \vec m) => max \]
其中,\(\vec m_j\)\(w_j\)類的模式平均向量,\(\vec m\)為總的模式平均向量。設\(n_j\)\(w_j\)類所含模式個數,
\[ \vec m_j = \frac{1}{n_j} \sum_{\vec x_i \in w_j} \vec x_i, \vec m = \frac{1}{N}\sum^N_{i=1} \vec x_i \]

對於兩類問題,類間距離有時取
\[ J_{B2} = (\vec m_1 - \vec m_2)^`(\vec m_1 - \vec m_2) \]
\(J_{B2}\)\(J_{WB}\)的關係是
\[ J_{WB} = \frac {n_1}{N} \frac{n_2}{N} J_{B2} \]

基於類內距離類間距離的準則函式
我們希望聚類結果使類內距離越小越好,類間距離越大越好。為此構造能同時反映出類內距離和類間距離的準則函式。
設代分類模式集{\(\vec x_i, i=1,2,...,N\)},將它們分成\(c\)類,\(w_j\)\(n_j\)個模式,分類後各模式記為
\[ \{ \vec x_i^{(j)}, j = 1,2,...,c;i=1,2,...,n \} \]

\(w_j\)的類內離差陣定義為:
\[ S^{(j)}_W = \frac{1}{n_j} \sum_{i=1}^{n_j} (\vec x_i^{(j)} - \vec m_j)(\vec x_i^{(j)} - \vec m_j)^` , (j=1,2,...,c) \]
式中\(\vec m_j\)為類\(w_j\)的模式均值向量
\[ \vec m_j = \frac{1}{n_j} \sum_{i=1}^{n_j} \vec x_i^j , (j=1,2,...,c) \]

總的類內離差陣定義為:\(S_W = \sum^c_{j=1} \frac{n_j}{N}S_W^{(j)}\)
類間離差陣定義為: \(S_B = \sum^c_{j=1} \frac{n_j}{N} (\vec m_j - \vec m)(\vec m_j - \vec m)^`\)
其中,\(\vec m\)為所有待分類模式的均值向量: \(\vec m = \frac{1}{N} \sum_{i=1}^N \vec x_i\)
總的離差陣\(S_r\),定義為:\(S_r = \frac{1}{N} \sum_{i=1}^N(\vec x_i - \vec m)(\vec x_i - \vec m)^`\)
於是有:\(S_r = S_W + S_B\)

基於類內距離類間距離的準則函式
聚類的基本目的是使\(Tr[S_B] => max\)\(Tr[S_W] => min\)。利用線性代數有關矩陣的跡和行列式的性質,可以定義如下4個聚類的準則函式:
\[ J_1 = Tr[S^{-1}_W S_B] \\ \\ J_2 = |S^{-1}_W S_B| \\ \\ J_3 = Tr[S^{-1}_W S_T] \\ \\ J_4 = |S^{-1}_W S_T| \]
為了得到好的聚類結果,應該使這四個準則函式儘量的大。

聚類分析聚類分析演算法歸納起來有三大類:

  1. 按最小距離原則簡單聚類方法
  2. 按最小距離原則進行兩類合併的演算法
  3. 依據準則函式動態聚類的演算法

簡單聚類方法
針對具體問題確定相似性闕值,將模式到各聚類中心間的距離與闕值比較,當大於闕值時,該模式就作為另一類的類心,小於闕值時,按最小距離原則將其劃分到某一類中。
該類演算法執行中,模式的類別及類的中心一旦確定將不會改變

按最小距離原則進行兩類合併的演算法
首先視各模式自成一類,然後將距離最小的兩類合併成一類,不斷重複這個過程,直到成為兩類為止。
這類演算法執行中,類心會不斷進行修正,但模式類別一旦指定後就不會再改變,即模式一旦劃為一類後就不再被分劃開,這類演算法也成為譜系聚類法。

依據準則函式動態聚類的演算法
設定一些分類的控制引數,定義一個能表徵聚類結果優劣的準則函式,聚類過程就是使準則函式取極值的優化過程。
演算法執行中,類心不斷地修正,各模式的類別的指定也不斷地更改。這類演算法有--C均值法、ISODATA法等

根據相似性闕值的簡單聚類方法


  1. 根據相似性闕值和最小距離原則的簡單聚類方法
    1. 條件及約定
      設待分類的模式為{\(\vec x_1, \vec x_2, ..., \vec x_N\)},選定類內距離門限\(T\)
    2. 演算法思想
      計算模式特徵向量到聚類中心距離並和門限\(T\)比較,決定歸屬該類或作為新的一類中心。這種演算法通常選擇歐式距離。
    3. 演算法原理步驟
    • 取任意的一個模式特徵向量作為第一個聚類中心。例如,令類\(w_1\)的中心 \(\vec z_1 = \vec x_1\)
    • 計算下一個模式特徵向量\(\vec x_2\)\(\vec z_1\)的距離\(d_{21}\)。若\(d_{21} > T\),其中\(T\)為門限,則建立一個新類\(w_2\),其中心為$\vec z_2 = \vec x_2 \(。若\)d_21 \leq T\(,則\)\vec x_2 \in w_1$
    • 假設已有聚類中心\(\vec z_1, \vec z_2, ..., \vec z_k\),計算尚未確定類別的模式特徵向量\(\vec x_1\)到各聚類中心\(\vec z_i(j = 1,2,...,k)\)的距離\(d_{ij}\)。如果\(d_{ij} > T(j=1,2,...,k)\),則\(\vec x_i\)作為新的一類\(w_{k+1}\)的中心,\(\vec z_{k+1} = \vec x_i\);否則,如果\(d_{ij} = min_j[d_{ij}]\),則指判\(\vec x_i \in w_j\)。檢查是否所有的模式都分劃完類別,如果劃完了則結束;否則重新進行該部分。
    1. 演算法特點
      這類演算法的突出特點是演算法簡單。但聚類過程中,類的中心一旦確定將不會改變,模式一旦指定類後也不再改變。
      該演算法結果很大程度上依賴於距離門限\(T\)的選取及模式參與分類的次序。如果能有先驗知識指導門限\(T\)的選取,通常可以獲得比較合理的效果。也可考慮設定不同的\(T\)和選著不同的次序,最後選擇較好的結果進行比較。
  2. 最大最小距離演算法
    1. 條件及約定
      設待分類的模式為{\(\vec x_1, \vec x_2, ..., \vec x_N\)},選定比例係數\(\theta\)
    2. 演算法思想
      在模式特徵向量集中以最大距離原則選取新的聚類中心。以最小距離原則進行模式歸類。這種方法通常也使用歐式距離。
    3. 演算法原理步驟
    • (1) 任選一模式特徵向量作為第一聚類中心\(\vec z_1\),如\(\vec z_1 = \vec x_1\)
    • (2) 從待分類向量集中選距離\(\vec z_1\)最遠的特徵向量作為第二個聚類中心\(\vec z_2\)
    • (3) 計算未被作為聚類中心的各模式特徵向量{\(\vec x_i\)}與\(\vec z_1, \vec z_2\)之間的距離,並求出它們之間的最小值,即
      \[ d_{ij} = || \vec x_i - \vec z_j || (j = 1,2) \\ d_i = min[d_{i1}, d_{i2}] (i=1,2,...,N) \]
    • (4) 若\(d_l = max_i[min(d_{i1}, d_{i2})] > \theta||\vec z_1 - \vec z_2||\),則相應的特徵向量,\(\vec x_l\)作為第三個聚類中心,\(\vec z_3 = \vec x_l\),然後轉至(5),否則轉至最後一步(6)
    • (5) 設存在\(k\)個聚類中心,計算未被作為聚類中心的各特徵向量到各聚類中心的距離\(d_{ij}\),並計算出
      \[ d_l = max_i[min[d_{i1}, d_{i2},...,d_{ik}]] \]
      如果\(d_l > \theta||\vec z_1 - \vec z_2||\),則\(\vec z_{k-1} = \vec x_l\)並轉至(5),否則轉至(6)
    • (6) 當判斷出不再有新的聚類中心之後,將模式特徵向量{\(\vec x_1, \vec x_2,...,\vec x_N\)},按最小距離原則分到各類中去,即計算
      \[ d_{ij} = ||\vec x_i - \vec z_j|| (j=1,2,...;i=1,2,...,N) \]
      \(d_{il} = min_j[d_{ij}]\),則判\(\vec x_i \in w_l\)
    1. 演算法特點
      該演算法的聚類結果與引數\(\theta\)以及第一個聚類中心的選取有關。如果沒有先驗知識指導\(\theta\)\(\vec z_1\)的選擇,可適當調整\(\theta\)\(\vec z_1\),比較多次試探分類結果,選取最合理的一種聚類。

譜系聚類法
按最小距離原則不斷進行兩類合併,也稱為層次聚類法,系統聚類法

  1. 條件及約定
    設待分類的模式特徵向量為{\(\vec x_1, \vec x_2, ..., \vec x_N\)},\(G_i^{(k)}\)表示第\(k\)次合併時的第\(i\)類。
  2. 演算法思想
    首先將\(N\)個模式視作各自成為一類,然後計算類與類之間的距離,選擇距離最小的一對合併成一個新類,計算在新的類別劃分下各類之間的距離,再將距離最近的兩類合併,直至所有模式聚成兩類為止。
  3. 演算法原理步驟
  • (1) 初始分類。令\(k=0\),每個模式自成一類,即
    \[ G_i^{(0)} = \{\vec x_i\}(i = 1,2,...,N) \]
  • (2) 計算各類間的距離\(D_{ij}\),由此生成一個對稱矩陣\(D^{(k)} = (D_{ij})_{m * m}\), \(m\)為類的個數,(初始 \(m = N\))。
  • (3) 找出在(2)中求得的矩陣\(D^{(k)}\)中的最小元素,設它是\(G_i^{(k)}\)\(G_j^{(k)}\)間的距離,將\(G_i^{(k)}\)\(G_j^{(k)}\)兩類合併成一類,於是產生新的聚類 \(G_1^{(k+1)}, G_2^{(k+1)}\), ...令 \(k = k+1, m = m-1\)
  • (4) 檢查類的個數。如果類數\(m\)大於2,轉至(2);否則,停止。

模式識別與機器學習(一)

相關文章