讀書筆記 -- 008_數據挖掘_聚類_基於層次的方法

概述

儘管基於劃分的聚類算法滿足把對象劃分成一些互斥的組羣的基本聚類要求,但是在某些情況下,我們希望把數據劃分成不同層次的組羣,如層次。層次聚類方法(hierarchical clustering method)將數據對象組成層次結構或簇的“樹”。

對於數據彙總和可視化,用層次結構的形式表示數據對象是有用的。我們可以很容易地對組織在層次結構中的數據進行彙總或特徵化。

這次,我們討論層次聚類算法。我們從凝聚和分裂層次聚類的討論開始。凝聚和分裂層次聚類分別使用自底向上和自頂向下策略把對象組織到層次結構中。凝聚方法從每個對象都作爲一個簇開始,迭代地合併,形成更大的簇。與此相反,分裂的方法開始令所有給定的對象形成一個簇,迭代地分裂,形成較小的簇。

層次聚類的算法可能在合併或分裂點的選擇方法上遇到困難。這種決定是至關重要的,因爲一旦對象的組羣被合併或被分裂,則下一步處理將在新產生的簇上進行。它既不會撤銷先前所做的工作,也不會在簇之間進行對象交換。因此,如果合併或者分裂選擇不當,則可能導致低質量的簇。此外,這種方法不具有很好的可伸縮性,因爲每次合併或分裂的決定都需要考察和評估許多對象或簇。

一種提高層次聚類質量的有希望的方向是集成層次聚類與其他技術,形成多階段聚類。我們介紹兩種這樣的方法,即BIRCH和Chameleon。BIRCH從使用樹結構分層劃分對象開始,其中樹葉和低層結點可以看作“微簇”,依賴於分辨率的尺度。然後,它使用其他聚類算法,在這些微簇上進行宏聚類。Chameleon探索層次聚類中的動態建模。
存在多種方法對層次聚類算法進行分類。例如,他們可分爲算法方法、概率方法和貝葉斯方法。凝聚、分裂和多階段方法都是算法的,即他們都將數據對象看作確定性的,並且根據對象之間的確定性的距離計算簇。概率方法使用概率模型捕獲簇,並且根據模型的擬合度度量簇的質量。貝葉斯方法計算可能的聚類的分佈,即它們返回給定數據上的一組聚類結構和他們的概率、條件,而不是輸出數據集上的單個確定性的聚類。


1、凝聚的與分裂的層次聚類

層次聚類的方法可以是凝聚的或分裂的,取決於層次分解是自底向上(合併)還是自頂向下(分裂)方式形成。

1、)凝聚的層次聚類方法:簇的合併過程反覆進行,每一步合併兩個最接近的簇,直到所有的對象最終合併成一個簇。這需要定義簇的鄰近性概念;
2、)分裂的層次聚類方法:簇的分裂過程反覆進行,每一步分裂一個簇,直到最終每個新的簇只包含一個對象(單點簇)。在這種情況下,我們需要確定每一步分裂哪個簇,以及如何分裂。一旦一個簇被劃分,該簇的任何可供選擇的其它劃分都不再考慮。基於分裂方法的特點,凝聚的方法遠比分裂的方法多。
凝聚的和分裂的層次聚類
層次聚類常常使用樹狀圖(dendrogram)的類似於樹的圖顯示。
層次聚類的樹狀圖表示
對於二維點的集合,層次聚類也可以使用嵌套圖(nested cluster diagram)表示。如下圖是使用單連接技術聚類。
這裏寫圖片描述


2、算法方法的距離度量

無論是使用凝聚的還是分裂的方法,一個核心的問題是度量兩個簇之間的距離,其中每個簇一般是一個對象集。

4個廣泛採用的簇間距離度量方法如下,其中|p-p’|是兩個對象或點p和p’之間的距離,mi是簇Ci的均值,而ni是簇C中對象的數目。這些度量又稱連接度量(linkage measure)。

當算法使用最小距離來衡量簇間距離時,有時稱它爲最近鄰聚類算法(nearest-neighbor clustering algorithm)。此外,如果當最近的兩個簇之間的距離超過用戶給定的閾值時聚類過程就會終止,則稱其爲單連接算法(single-linkage algorithm)。如果我們把數據點看作圖的結點,圖中的邊構成簇內結點間的路徑,那麼兩個簇Ci和Cj的就對應於在Ci和Cj的最近的一對結點之間添加一條邊。由於連接簇的邊總是從一個簇通向另一個簇,結果圖將形成一棵樹。因此,使用最小距離度量的凝聚層次聚類算法也被稱爲最小生成樹算法(minimal spanning tree algorithm),其中圖的生成樹是一棵連接所有結點的樹,而最小生成樹是具有最小邊權重和的生成樹。

當一個算法使用最大距離來度量簇間距離時,有時稱它爲最遠鄰聚類算法(farthest-neighbor clustering algorithm)。如果當最近的兩個簇之間的最大距離超過用戶給定的閾值時聚類過程便終止,則稱其爲全連接算法(complete-linkage algorithm)。通過把數據點看作圖中的結點,用邊來連接結點,我們可以把每個簇看成是一個完全子圖,也就是說,簇中所有結點都有邊來連接。兩個簇間的距離由兩個簇中距離最遠的結點間的距離確定。最遠鄰算法試圖在每次迭代中儘可能少地增加簇的直徑。如果真實的簇較爲緊湊並且大小近似相等,則這種方法將會產生高質量的簇,否則產生的簇可能毫無意義。

以上最小和最大距離度量代表了簇間距離度量的兩個極端。它們趨向對離羣點或噪聲數據過分敏感。使用均值距離或平均距離是對最小和最大距離之間的一種這種方法,並且可以克服離羣點敏感性問題。儘管均值距離計算最簡單,但是平均距離也有其優勢,因爲它既可以處理數值數據又可以處理分類數據。分類數據的均值向量可能很難計算或者根本無法定義。
這裏寫圖片描述

例:我們把層次聚類應用於下圖a所示的數據集。下圖b顯示使用單連接的樹狀圖。下圖c顯示使用全連接的情況,爲了顯示簡單,省略了簇{A,B,J,H}和{C,D,G,F,H}之間的邊。該例表明,通過單連接,我們可以發現由局部鄰近性定義的分層的簇,而全連接則趨向發現全局鄰近性選擇的簇。

注意:以上4中連接度量有一些變形。例如,我們可以用簇心(即中心對象)之間的距離度量兩個簇之間的距離。


3、基本凝聚層次聚類算法
許多凝聚層次聚類技術都是這個方法的變種:從個體點作爲簇開始,相繼合併兩個最接近的簇,直到只剩下一個簇。
這裏寫圖片描述

基本凝聚層次聚類算法使用鄰近度矩陣。這需要存儲m^2/2個鄰近度(假設臨近矩陣是對稱的)(個人觀點:既然是對稱的,那麼就應該需要這裏寫圖片描述個存儲空間),其中m是數據點的個數。記錄簇所需要的空間比簇的個數少m-1,不包括單點簇。因此總的空間複雜度爲O(m^2)。
基本凝聚層次聚類算法的時間複雜度也是明確的,即需要O(m^2logm)(不想細說,見《數據挖掘導論》P322)。

發佈了30 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章