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

視屏連接html

類間距離測度方法算法

  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\) 之間的距離
    用於鏈式結構分佈的數據中ide

  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}\)的距離。spa

  2. 重心距離法3d

    兩類之間的重心的距離。
    \(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\)的樣本個數htm

  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);不然,中止。

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

相關文章
相關標籤/搜索