視屏連接html
類間距離測度方法算法
最近距離法機器學習
\(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
最遠距離法函數
\(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}\)的距離。spa
重心距離法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
平均距離法
\(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);不然,中止。