340 likes | 413 Views
第十二章 分群與應用. 12.1 前言 12.2 K-means 分群法 12.3 植基於 K-D 樹的分群法 12.4 植基於對稱假設的分群法 12.5 變異數控制式的分群法 12.6 向量量化的應用 12.7 模糊分群法及其加速. 12.1 前言. 分群 (clustering) [1] 是將一組資料依據某種距離的量度將該組資料分割成若干群。圖 12.1.1 為簡略的示意圖。. 圖 12.1.1 分群示意圖. 12.2 K-means 分群法. K-means 的 K 指的是分群數 ; means 可視為質心。
E N D
12.1 前言 • 12.2 K-means分群法 • 12.3 植基於K-D樹的分群法 • 12.4 植基於對稱假設的分群法 • 12.5 變異數控制式的分群法 • 12.6 向量量化的應用 • 12.7 模糊分群法及其加速
12.1 前言 分群(clustering) [1] 是將一組資料依據某種距離的量度將該組資料分割成若干群。圖12.1.1為簡略的示意圖。 圖12.1.1 分群示意圖
12.2 K-means 分群法 K-means的 K 指的是分群數 ; means可視為質心。 Q1:給10筆資料,點 和點 為起始的兩個群心。 圖12.2.1 起始的兩個群心選定
圖12.2.2 各點的歸類 在下一次的疊代中,群心 和 是不會再改變的。也就是說,我們已經完成 K=2 的分群工作了。
Q3:在前面介紹的K-means分群法中,碰到較極端的例子,例如:Outlier 的例子,是否會產生不理想的分群結果? ANS:在 [9] 中,學者針對Outlier的例子,發現這例子的確會產生不理想的分群結果。我們先來看圖12.2.3的簡單例子: 圖12.2.3 簡單的一個例子
然而,我們仍很自然的將點p歸類為 ,因為 , 畢竟K-means分群法只注重距離。視覺告訴我們:將點p重新自己歸為一類,而將群 和 群合併為一類倒不失為好方法。在 [9] 中,學者就是利用 的條件,據以將點p這個Outlier另外歸為一類;否則就遵循K-means分群法。 在上圖中, 和 為目前的兩群,而 和 為這兩群的群心。點p可視為Outlier的點。假設三個距離 、 和 已被算出且滿足下列二個不等式
12.3 植基於 K-D 樹的分群法 假設在二維空間上有 n 筆資料,利用 K-D 樹,我們可將其儲存如下:首先在 x 軸上找出一切線將該 n 筆資料一分為二且使得在切線左邊的資料量約莫等於切線右邊的資料量。接下來,我們考慮 y 軸且盡可能將左邊和右邊的資料量再一分為二。如此,不斷的分割下去,直到每個葉子的資料量達到所訂的要求為止。 圖12.3.1 十一筆資料的分佈圖
圖12.3.2 第一次分割 圖12.3.3 最後分割的結果 圖12.3.4 K-D樹
在圖中,原有32個點,但其中的12個點被選為起始的群心。這12個群心分別被標示為 和 。 圖12.3.5 起始時的狀態
根據K-D樹的分割原理,經過第一次分割後,我們得到圖12.3.6的分割圖。在分割線的左邊,共有十六筆資料。圖中左邊內的點 代表左邊十六筆資料的質心。這質心可幫助我們加快每一筆資料的群心歸屬的速度。 圖12.3.6 第一次分割圖
從圖12.3.6中切線的右邊任意挑一群心出來且令該被挑出的群心為 (參見圖12.3.7)。接下來,我們在 和 兩點間拉一條直線且在這條直線上作出一條中分線L。根據幾何學的特性,在中分線L左側的點(表示成黑色三角形)和 的距離是會小於 的距離。例如:只需將點A的座標值代入中分線後得到負值就可知道A點距離 較近,這時對點而言,群心 是不必被納入考慮的。 圖12.3.7加快群心歸屬示意圖
當每一點的群心歸屬被確定後,我們就在K-D樹的葉子上,將這些歸屬於同一群心的點集合收集起來並求出其新的群心。當這12個新群心被確定後,它們就取代圖12.3.6中原先的12個群心。接下來,我們重覆上述的分割與過濾的動作直到最終的12個群心不再改變為止。當每一點的群心歸屬被確定後,我們就在K-D樹的葉子上,將這些歸屬於同一群心的點集合收集起來並求出其新的群心。當這12個新群心被確定後,它們就取代圖12.3.6中原先的12個群心。接下來,我們重覆上述的分割與過濾的動作直到最終的12個群心不再改變為止。
12.4 植基於對稱假設的分群法 圖12.4.1 一個對稱圖的例子 在上圖中,點A為資料集呈橢圓 分佈的群心,而點B為資料集呈橢圓 分佈的群心。根據K-means的作法,資料點O因為距離群心A較近,它會被歸屬於群心A。事實上,從資料集 的分佈來看,資料點O應該被歸屬於群心B的。就造成了誤判的情形。
假設共有N個點,針對質心C而言,點和質心C的距離被定義如下: (12.4.1) 利用式(12.4.1),圖12.4.1中的點O之對稱點為點P,如此一來,點O就不會被歸屬為群心A了。
為方便起見,上述方法就稱做SC方法吧!SC方法適合的資料點集稱做SIC(Symmetrical Intra-Cluster)集。給N個資料點 ,假設利用K-means演算法,我們找到了K 個群心。對資料點而言,點對稱距離量度可表示為 圖12.4.3 (a)為一K-means方法所得的分群結果,而圖12.4.3 (b)為SC方法所得的分群結果。很明顯的可看出SC方法對SIC集的分群優勢,在SC方法中由於反應了對稱的考量,故得到較佳的分群結果。
圖12.4.2 二個SIC 圖12.4.3 (a) K-means方法所得的分群結果
SC方法的第一個小弱點為缺乏對稱的強健性。給一圖如圖12.4.4所示: 圖12.4.4 SC第一個小弱點的例子 對資料點 而言,相對於群心 ,最對稱的點為 ,這說明了SC方法會較偏愛較遠的點。這也多少減低了SC方法在對稱上的強健性。
SC方法的第二個小弱點為碰到資料集為SIIC(Symmetrical Intra/Inter Clusters)時,分群的效果不是很理想。給一圖如12.4.5所示: 圖12.4.5 SIIC的一個例子
SC方法將 指派給 。這樣的指派違反了我們視覺上的觀察,視覺上的觀察會建議將 指派給 。之所以會發生這樣的問題在於 事先已指派給 ,這造成了 和 分別屬於不同群,也破壞了封閉性(Closure Property)。 為了克服SC方法中的缺乏對稱強健性,我們提出一種稱為DSL(Distance Similarity Level)的算子。為了能納入方向近似程度,我們定義一種稱為OSL(Orientation Similarity Level)的算子。 DSL算子 OSL算子
將這兩個算子整合成 這裏SSL代表Symmetry Similarity Level的縮寫。為了保有封閉性,上式改寫為 SSL算子可說是對SIIC資料集分群的核心算子。
給一組SIIC資料集如圖12.4.6所示。利用K-means方法得到的分群結果如圖12.4.7 (a) 所示。利用SC方法得到的分群結果如圖12.4.7 (b) 所示。利用我們所介紹的SSL算子所得到的分群結果如圖12.4.7 (c) 所示。很明顯可看出,對SIIC資料集而言,SSL算子有最佳分群效果。 圖 12.4.6 SIIC 資料集 (a) K-means方法所得分群結果
(c) SSL方法所得分群結果 (b) SC方法所得分群結果
12.5 變異數控制式的分群法 假設我們有一個資料集 ,給定一個變異數 ,我們的目標是設計一個演算法將集合X分割成許多子集 [1],使得每個子集內的資料之變異數皆 。假使最終我們得到 這些分群組,則對 而言,必滿足 這裏
一開始,我們任意將X分割成許多子集,例如,分割成I份群組,這I份群組表示成 。接下來,我們計算出它們的變異數, , 。如果 ,則 進行隔離(Isolation)的動作。 這裏 表示y和x有最遠距離。接下來,我們將 個內部邊點予以分離出去。 如果 ,則對 算出
這時點y被視為點x的外部邊緣(Outer Border)點,我們針對外部邊緣集 (這裏 表示y和x有最近距離)隨機選取 個外部邊緣點並將它們和 合併(Union)起來。 在[1]中,學者們提出利用干擾法(Perturbation)來改善最後的分群效果。對群 來說,我們在 中挑一 點 ,如果下式成立,則將x從 中移除,而將x納入 中:
12.6 向量量化的應用 (see pp. 479-483)
12.7 模糊分群法及其加速 假設資料點集表示為X={x1,x2,…,xn},FCM分群法將資料點集X分成C群。令這C群的群心集為V={v1,v2,…,vc}。令資料點xj對群心vi的隸屬函數值為uij,則隸屬矩陣U可表示為
在式(12.7.1)中 , 代表資料點 和群心 的距離,而 代表賦予到 的加權,式(12.7.1)中的 充分反應了模糊集的精神。 我們可定義群心集V和資料點集X的誤差為: (12.7.1) 從隸屬矩陣U中,對資料點 而言,可得知下式需被滿足:
對微分後令為零,可得到 (12.7.2) 對微分後令為零,可得到 (12.7.3) 由式(12.7.3)可解得 (12.7.4)
由式(12.7.2)和式(12.7.4)可得到 (12.7.5) 從式(12.7.5)可得 (12.7.6) 將式(12.7.6)代入式(12.7.4),得
(12.7.7) 至此,我們已推得資料點 到群心 的模糊加權 。 群心 可調整為 (12.7.8)
模糊C-means共分下列五個步驟: 步驟一:選定群數C、次方m、誤差容忍度 和起始隸屬矩陣U0。 步驟二:根據資料點集和U0算出起始的群心集。 步驟三:重新計算Uij, 和 。修正各個群心值。 步驟四:計算出誤差 ,這裏 和 代表群心 連續兩個疊代回合的值。 步驟五:若則停止;否則回到步驟三。