類間距離測度方法
最近距離法
\(D_{kl} = min_{i,j} \lfloor d_{ij}\rfloor {a}\)
\(d_{ij}\)表示 \(\vec x_i \in w_k\) 和 \(\vec x_j \in w_l\) 之間的距離
用於鏈式結構分佈的資料中
最遠距離法
\(D_{kl} = max_{i,j} \lfloor d_{ij}\rfloor {a}\)
\(d_{ij}\)表示 \(\vec x_i \in w_k\) 和 \(\vec x_j \in w_l\) 之間的距離
中間距離法
$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}\)的距離。重心距離法
兩類之間的重心的距離。
\(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\)的樣本個數
平均距離法
\(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}\)
兩類之間所有點之間距離的均值
離差平方和法
\(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|
\]
為了得到好的聚類結果,應該使這四個準則函式儘量的大。
聚類分析聚類分析演算法歸納起來有三大類:
- 按最小距離原則簡單聚類方法
- 按最小距離原則進行兩類合併的演算法
- 依據準則函式動態聚類的演算法
簡單聚類方法
針對具體問題確定相似性闕值,將模式到各聚類中心間的距離與闕值比較,當大於闕值時,該模式就作為另一類的類心,小於闕值時,按最小距離原則將其劃分到某一類中。
該類演算法執行中,模式的類別及類的中心一旦確定將不會改變
按最小距離原則進行兩類合併的演算法
首先視各模式自成一類,然後將距離最小的兩類合併成一類,不斷重複這個過程,直到成為兩類為止。
這類演算法執行中,類心會不斷進行修正,但模式類別一旦指定後就不會再改變,即模式一旦劃為一類後就不再被分劃開,這類演算法也成為譜系聚類法。
依據準則函式動態聚類的演算法
設定一些分類的控制引數,定義一個能表徵聚類結果優劣的準則函式,聚類過程就是使準則函式取極值的優化過程。
演算法執行中,類心不斷地修正,各模式的類別的指定也不斷地更改。這類演算法有--C均值法、ISODATA法等
根據相似性闕值的簡單聚類方法
- 根據相似性闕值和最小距離原則的簡單聚類方法
- 條件及約定
設待分類的模式為{\(\vec x_1, \vec x_2, ..., \vec x_N\)},選定類內距離門限\(T\)。 - 演算法思想
計算模式特徵向量到聚類中心距離並和門限\(T\)比較,決定歸屬該類或作為新的一類中心。這種演算法通常選擇歐式距離。
- 演算法原理步驟
- 取任意的一個模式特徵向量作為第一個聚類中心。例如,令類\(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\)。檢查是否所有的模式都分劃完類別,如果劃完了則結束;否則重新進行該部分。
- 演算法特點
這類演算法的突出特點是演算法簡單。但聚類過程中,類的中心一旦確定將不會改變,模式一旦指定類後也不再改變。
該演算法結果很大程度上依賴於距離門限\(T\)的選取及模式參與分類的次序。如果能有先驗知識指導門限\(T\)的選取,通常可以獲得比較合理的效果。也可考慮設定不同的\(T\)和選著不同的次序,最後選擇較好的結果進行比較。 - 最大最小距離演算法
- 條件及約定
設待分類的模式為{\(\vec x_1, \vec x_2, ..., \vec x_N\)},選定比例係數\(\theta\)。 - 演算法思想
在模式特徵向量集中以最大距離原則選取新的聚類中心。以最小距離原則進行模式歸類。這種方法通常也使用歐式距離。
- 演算法原理步驟
- (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\) - 演算法特點
該演算法的聚類結果與引數\(\theta\)以及第一個聚類中心的選取有關。如果沒有先驗知識指導\(\theta\)和\(\vec z_1\)的選擇,可適當調整\(\theta\)和\(\vec z_1\),比較多次試探分類結果,選取最合理的一種聚類。
譜系聚類法
按最小距離原則不斷進行兩類合併,也稱為層次聚類法,系統聚類法
- 條件及約定
設待分類的模式特徵向量為{\(\vec x_1, \vec x_2, ..., \vec x_N\)},\(G_i^{(k)}\)表示第\(k\)次合併時的第\(i\)類。
- 演算法思想
首先將\(N\)個模式視作各自成為一類,然後計算類與類之間的距離,選擇距離最小的一對合併成一個新類,計算在新的類別劃分下各類之間的距離,再將距離最近的兩類合併,直至所有模式聚成兩類為止。
- 演算法原理步驟
- (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);否則,停止。