一.系統聚類法
1.基本思想
將模式樣本按距離准則逐步分類,類別由多到少,直到獲得合適的分類要求為止。
算法:
第一步:設初始模式樣本共有N個,每個樣本自成一類,即建立N類,。計算各類之間的距離(初始時即為各樣本間的距離),得到一個N*N維的距離矩陣D(0)。這里,標號(0)表示聚類開始運算前的狀態。
第二步:假設前一步聚類運算中已求得距離矩陣D(n),n為逐次聚類合並的次數,則求D(n)中的最小元素。如果它是Gi(n)和Gj(n)兩類之間的距離,則將Gi(n)和Gj(n)兩類合並為一類,由此建立新的分類:
。
第三步:計算合並后新類別之間的距離,得D(n+1)。
計算與其它沒有發生合並的
之間的距離,可采用多種不同的距離計算准則進行計算。
第四步:返回第二步,重復計算及合並,直到得到滿意的分類結果。(如:達到所需的聚類數目,或D(n)中的最小分量超過給定閾值D等。)
2.距離計算准則
那么什么是距離計算准則呢?
進行聚類合並的一個關鍵就是每次迭代中形成的聚類之間以及它們和樣本之間距離的計算,采用不同的距離函數會得到不同的計算結果。
主要的距離計算准則:
–最短距離法
–最長距離法
–中間距離法
–重心法
–類平均距離法
聚類准則函數:
(1)最短距離法:設H和K是兩個聚類,則兩類間的最短距離定義為:
其中,du,v表示H類中的樣本xu和K類中的樣本xv之間的距離,DH,K表示H類中的所有樣本和K類中的所有樣本之間的最小距離。
遞推運算:假若K類是由I和J兩類合並而成,則
(2)最長距離法:設H和K是兩個聚類,則兩類間的最長距離定義為:
其中du,v的含義與上面相同。
遞推運算:假若K類是由I和J兩類合並而成,則
(3)中間距離法:設K類是由I和J兩類合並而成,則H和K類之間的距離為:
它介於最長距離和最短距離之間。
(4)重心法:假設I類中有nI個樣本,J類中有nJ個樣本,則I和J合並后共有nI+nJ個樣本。用nI/(nI+nJ)和nJ/(nI+nJ)代替中間距離法中的系數,得到重心法的類間距離計算公式:
(5)類平均距離法:若采用樣本間所有距離的平均距離,則有:
遞推運算公式:
二. k均值算法
1.算法思想及基本步驟
將給定的樣本划分為K類,K預先指定。
算法基本思想:基於使聚類性能指標最小化,所用的聚類准則函數是聚類集中每一個樣本點到該類中心的距離平方之和,並使其最小化。
算法步驟:
1.為每個聚類確定一個初始聚類中心,這樣,就有K個初始聚類中心。
2.將樣本集中的樣本Xi按照最小距離原則分配到最鄰近聚類Zj
3.使用每個聚類中的樣本均值作為新的聚類中心。
4.重復步驟2.3直到聚類中心不再變化。
5.結束,得到K個聚類。
2.算法的優化目標
K均值算法的聚類准則函數為:
在算法中我們需要計算K個聚類的樣本均值,算法名稱由此得來。
我們要尋找聚類准則函數J的最小值作為算法優化的目標,當J最小的時候,函數對於每個聚類中心的偏導數為0:
得到。這說明取類內樣本均值為聚類中心可以使得聚類准則函數達到最小。
3.初始聚類中心的選取
初始聚類中心的選取決定着計算的迭代次數,甚至決定着最終的解是否為全局最優,所以選擇一個好的初始聚類中心是很有必要的。
首先選擇第一個樣本點作為第一個聚類中心。
然后選取距離第一個點最遠的點作為第二個聚類中心。
……
第j個聚類中心要遠離第1~j-1個聚類中心。
或者可以多次隨機取初始聚類中心,得到聚類結果,取平均值。
三.聚類結果的評價
迅速評價聚類結果,在上述迭代運算中是很重要的,特別是具有高維特征向量的模式,不能直接看清聚類效果,因此,可考慮用以下幾個指標來評價聚類效果:
–聚類中心之間的距離
距離值大,通常可考慮分為不同類
–聚類域中的樣本數目
樣本數目少且聚類中心距離遠,可考慮是否為噪聲
–聚類域內樣本的距離方差
方差過大的樣本可考慮是否屬於這一類
模式聚類目前還沒有一種通用的放之四海而皆准的准則,往往需要根據實際應用來選擇合適的方法。