第二章 ,相關方法與文獻
2.1 非監督式分群演算法(unsupervised clustering)
分群演算法是一種非監督式學習法,我們通常只能預測分群的數目,資料真 實的分群情況卻是未知的。它能夠將輸入的資料依據某種假設,自動的分成數個 子分群,最常見的假設是:屬於相同分群的資料具有類似的性質,因此同個分群 之間的資料相似度必須越大越好;不同分群的資料具有顯著性的差異,因此不同 分群之間的資料相似度必須越小越好。描述相似度的公式有相當多種類,包含歐 氏距離(Euclidean distance)、歐式距離平方(Squared Euclidean distance)等,如表 2-1 所示。其中歐氏距離是最常被應用在分群演算法的相似度函式。本章節所介 紹的方法,多數都是採用歐氏距離描述相似度。依據假設,我們能夠定義一組目 標函數(objective function)來滿足假設的情況,緊接著設計出一套專屬的演算法,
試著找出此目標函數的最佳解。然而,由目標函數找出的最佳解所形成的分群未 必是正確解,它是隨著不同的目標函數而有所區別,僅能說明在此目標函數之下,
最佳解是假設下的正確解。
表 2-1. 相似度函式
Euclidean distance ��(ai− bi)2
i
Squared Euclidean distance �(ai− bi)2
i
Minkowski distance ��|ai− bi|p
i
�
1p
Manhattan distance �|ai− bi|
i
Mahalanobis distance �(a − b)TS−1(a − b)
5
一個好的分群演算法往往需要滿足幾項需求[1],在此我們特別針對以下三 項做探討與改進:
1. 尋找任意形狀的群集(Discovery of clusters with arbitrary shape) 2. 高維度(High dimensionality)
3. 遵循某些限制條件下的分群方法(Constraint-based clustering)
較常見的非監督式分群演算法包括切割式(partitional clustering)、階層式 (hierarchical clustering)和密度基礎式(density based clustering)。
2.1.1 切割式(partitional clustering)
切割式分群法的目標是將完整的資料集,依據使用者給予的分群數 K 切割 成符合目標函數假設的 K 個子分群,是一種由上至下(top-down)的演算法。切割 式分群法常見的有 K-means 演算法[3]和 K-medoids 演算法[4]。
K-means 演算法是以中心為基礎進行分群,其目標是將資料個數為 N 的資料 集細分成 K 個擁有高度相似度的子群,藉由最佳化資料與中心的相似度,自多 個隨機出發的初始中心之中尋找一組最佳解。使用 K-means 演算法通常需要事 先預測分群數 K 並選擇一種相似度函式,不恰當的分群數量或相似度函式都會 引導演算法至錯誤的結果,而最常使用的相似度函式則是歐式距離。K-means 演 算法首先在資料總數為 N 的資料集中任選 K 個資料做為初始中心,接著將剩餘 的 N-K 個資料分配至能夠最佳化目標函數的分群,隨後更新分群中心。不斷重 複上述步驟直到中心停止改變,我們可以得到一組分群結果。由於 K-means 演 算法對初始中心相當敏感,不同的初始中心未必會收斂至相同的分群結果,我們 必須反覆挑選不同的初始中心,從中挑選一組能夠最佳化目標函數的分群結果做 為最佳解。
K-medoids 演算法和 K-means 十分相似,兩者的差別在於 K-means 使用中心 (center)代表分群,而 K-medoids 使用實心(medoid)表示。中心的位置可以不在任 何一個資料點上,通常以相同分群內所有資料的平均值表示中心;實心的位置則
6
必定在資料點上,通常以相同分群內最接近中心的資料點表示實心。K-medoids 演算法將表示分群的方式從中心修改成實心,使演算法要最佳化的目標是成對資 料的相似度,能夠相對的不受離群值(outlier)的影響,大幅降低對離群值的敏感 性,亦不會有空群的情況發生。
K-means 或 K-medoids 演算法的優點在於能夠快速收斂、易於建構、通常能 找到區域最佳解(local optimum);然而,兩者都不善於處理各分群資料大小不均 衡、密度不均衡的凸狀圖形或凹狀圖形。
圖 2-1. K-means 演算法流程
2.1.2 階層式(hierarchical clustering)
階層式分群法的目標是建立一棵多層級的樹狀架構(dendrogram),透過此樹 狀架構表示資料彼此的相似關係,可依照使用者的需求彈性產生不同分群數的分 群結果。階層式分群法主要可以分成二類:聚合法(agglomerative)和分裂法 (divisive)。
聚合法是屬於由下至上(bottom-up)的演算法,每一筆資料最初都被視為單獨 的分群,藉由不斷合併兩個最為相似的分群,直到所有資料形成完整的一群。大 多數的階層式演算法是採用聚合法;分裂法是屬於由上至下(top-down)的演算法,
7
起初將所有資料視為一個分群,依據相似度不斷將大分群拆解成多個彼此相似度 低的小分群,直到每筆資料都形成獨立分群或分群總數已達到預先設定的目標。
圖 2-2. 多層級樹狀架構(dendrogram)
Chameleon[5]是階層式分群法的代表之一,是一種採用動態模型的分群法。
它使用 K 最近鄰圖 (K-nearest neighbor graph)動態調整相鄰半徑(neighborhood radius)以描述資料彼此關係,任何一筆資料的相鄰半徑取決於資料所在的區域。
在密度高的區域,相鄰半徑變得較狹小;在密度低的區域,相鄰半徑變得更為寬 鬆。Chameleon 首先建構出 K 最近鄰圖,接著將圖形切割成多個子分群,使用 RI(relative interconnectivity)和 RC(relative closeness)評估各個子分群的相似度,反 覆合併至預先設定的分群數。Chameleon 能產生更自然的分群結果,善於處理任 意形狀的群集,但對於參數的敏感性較高。Chameleon 包含的參數相當多種,然 而分群的過程屬於非監督式學習,對於參數的設定往往只能透過反覆測試(trial and error),進而尋找出一組使用者接受的結果。
圖 2-3 Chameleon 演算法流程[5]
8
階層式分群法的困難處在於如何選擇聚合或分裂的位置。選擇聚合或分裂的 位置相當關鍵,當資料被聚合或分裂形成新的分群,下一步聚合或分裂的位置將 發生在新形成的分群上。若是在聚合或分裂的過程中,其中一個階段做出較差的 選擇,最終將引導至一個錯誤的分群結果[1]。
2.1.3 密度基礎式(density based clustering)
為了分辨出任意形狀的群集,我們觀察資料所在空間的密度,直覺的假設屬 於相同分群的資料會聚集在一個密度較高的區域內,而不同的分群則是由一塊密 度較低的區域分隔。DBSCAN[6]是密度基礎式分群法中最典型的一種,其目標 是分辨任意形狀的群集。DBSCAN 定義下方五項名詞:
1. ε 最近鄰(ε-neighbor-hood):點 p 周圍半徑 ε 內的所有資料點都稱作 p 的 ε 最 近鄰。
2. 核心點(core object):若是點 p 的ε 最近鄰超過 MinPts 個,則點 p 成為分群 的核心點。
3. 直接密度可達(direct density-reachable):若 p 是 q 的ε 最近鄰,且 q 為核心 點,則說 q 直接密度可達 p。
4. 密度可達(density-reachable):若存在一個鏈結 p1,p2,……pn,p1=q,pn=p,且 pi直接密度可達 pi+1,則說 q 密度可達 p。
5. 密度相連(density-connected):若存在一點 r,使 r 密度可達 p 和 q,則說 p 與 q 是密度相連。
DBSCAN 透過觀察每筆資料的ε 最近鄰來尋找分群。若是某個資料點 d 的 ε 最近鄰超過 MinPts 個,則建立一個以 d 為核心點的新分群。DBSCAN 加入核心 點密度可達的其他點至分群中,擴張分群所能涵蓋的區域。分群擴張的過程可能 涉及不同分群合併,不斷重複擴張的步驟直到所有點都被分群完成。
DBSCAN 的優點包含:自動找出分群數目、可以處理任意形狀的群集、較 不受離群值的影響且能夠標記出離群值。缺點則有兩項:1. 當資料維度較高時,
9
高維度空間下的資料分布必定是非常散亂,尋找一個適當的參數ε 將成為難題;
2. DBSCAN 仍然無法解決不同分群的密度有極大差異的情況。
圖 2-4. DBSCAN 示意圖
說明:A 代表核心點。相對於 A,B 和 C 是密度相連,且 B 和 C 屬於相同分群。N 表示離群值。