聚類方法簡介


將物理或抽象對象的集合分組成為有類似的對象組成的多個簇的過程被稱為聚類。由聚類所生成的簇是一組數據對象的集合,這些對象與同一個簇中的對象彼此相似,與其它簇中的對象相異。在許多應用中,可以將一個簇中的數據對象作為一個整體來對待。

  目前在文獻中存在大量的聚類算法。算法的選擇取決於數據的類型、聚類的目的和應用。如果聚類分析備用作描述或探查的工具,可以對同樣的數據嘗試多種算法,以發現數據可能揭示的結果。

  大體上,主要的聚類技術可以划分為如下幾類:

  1.划分方法

  給定一個個對象或元組的數據庫,一個划分方法構建數據的k個划分,每個划分表示一個聚簇,並且k<=n。也就是說,它將數據划分為k個組,同時滿足如下要求:

  (i)每個組至少包含一個對象;

  (ii)每個對象必須屬於且只屬於一個組。

  給定要構建的划分數目k,划分方法首先創建一個初始划分。然后采用一種迭代的重定位技術,嘗試通過對象在划分間移動來改進划分。一個好的划分的一般准則是:在同一類中的對象之間盡可能“接近”或相關,而不同類中的對象之間盡可能“遠離”或不同。還有許多其它划分質量評判准則。

  為了達到全局最優,基於划分的聚類會要求窮舉三所有可能的划分。實際上,絕大多數應用采用了以下兩個比較流行的啟發式方法:

  (1)聚於質心的技術: k-平均方法

  k-平均算法以k為參數,把n個對象分為k個簇,以使簇內具有較高的相似度,而簇間的相似度較低。相似度的計算根據一個簇中對象的平均值(被看作簇的重心)來進行。

  k-平均算法的處理流程如下。首先,隨機地選擇k個對象,每個對象初始地代表一個簇的平均值或中心。對剩余的每個對象,根據其與各個簇中心的距離,將它賦給最近的簇。然后重新計算每個簇的平均值。這個過程不斷重復,直到准則函數收斂。通常采用平方誤差准則,其定義如下:
  (2-1)

  這里的E是數據庫中所有對象的平方誤差的總和,p是空間的點,表示給定的數據對象,mi是簇Ci的平均值(p 和mi都是多維的)。這個准則是使圖生成的結果簇盡可能的緊湊和獨立。

  例1 假設有一個分布在空間中的對象集合,如圖2-1所示。給定k=3,即要求將這些對象聚類為三個簇。根據k-平均算法,我們任意選擇三個對象作為初始簇的中心,簇中心在圖中用“+”來標示。根據與簇中心的距離,每個對象分配給離其最近的一個簇。這樣分布形成如圖a中所繪的圖形。

  這樣的分組會改變聚類的中心,也就是說,每個聚類的平均值會根據類中的對象重新計算。依據這些新的聚類中心,對象被重新分配到各個類中。這樣重新分配形成了圖b中描繪的輪廓。

  以上的過程重復產生了圖c的情況。最后,當沒有對象重新分配發生時,處理過程結束,聚類的結果被返回。

 

圖2-1 基於K-means方法的一組對象的聚類

  這個算法嘗試找出是平方誤差函數值最小的K個划分,當結果簇是密集的,而簇與簇之間區別明顯時,它的效果較好。對處理大數據集,該算法是相對可伸縮的和高效率的,因為它的復雜程度是 O(nkt)。其中,n是所有對象的數目,k是簇的數目,t是迭代的數目。通常的,k<

  但是,k-平均方法只有在簇的平均值被定義的情況下使用。這可能不適應某些應用。例如涉及有分類屬性的數據。要求用戶必須事先給出k(要生成的簇的數目)可能算是該方法的一個缺點。K-平均方法不適合於發現非凸面形狀的簇,或者大小差別很大的簇,並且,它對於“噪聲”和孤立點數據很敏感,少量的該類數據能夠對平均值產生很大影響。

  (2)基於有代表性的對象的技術 k-中心點方法

  采用簇中位置最中心的對象,作為參照點即中心點,這樣划分依然是基於最小化所有對象與參照點之間的相異度之和的原則來執行的。這是k-中心點的基礎。它的基本策略是:首先為每個簇隨意選擇一個代表對象;剩余對象根據與代表對象的距離分配給最近的一個簇。然后反復用非代表對象代替代表對象,以改進聚類的質量。聚類結果的質量用一個代價函數來估算,該函數度量對象與參照對象之間的平均相異度。為了判定一個非代表對象是否是當前一個代表對象的好的替代,對於每一個非中心點對象p,下面的四種情況被考慮:

  ·第一種情況:p當前隸屬於中心點Oj。如果Oj被Orandom所代替作為中心點,且p離一個Oi最近,i≠j,那么p被重新分配給Oi.

  ·第二種情況:p當前隸屬於中心點Oj.如果Oj被Orandom代替作為中心點,且p離Orandom最近,那么p被重新分配給Orandom。

  ·第三種情況:p當前隸屬於中心點Oi,i≠j。如果Oj 被Orandom代替作為一個中心點,而p依然離Oi最近,那么對象的隸屬不發生變化。

  ·第四種情況: p當前隸屬於中心點Oi,i≠j。如果Oj 被Orandom代替作為一個中心點,且p離Orandom最近,那么p被重新分配給Orandom。

  圖2-2描述了上述四種情況。每當重新分配發生時,平方誤差E所產生的差別對代價函數有影響。因此一個當前的中心點對象被非中心點所代替,代價函數計算平方-誤差值所產生的差別。替代的總代價使所有非中心點對象所產生的代價之和。如果總代價是負的,那么實際的平方-誤差將會減小,Oj可以被Orandom代替。如果總代價是正的,則當前中心點Oj被認為是可以接受的,在本次迭代中沒有變化發生。一個典型的k-中心點算法描述在圖2-2中給出。

 

圖2-2 K-中心點聚類代價函數的四種情況

  “那個方法更健壯:k-平均或者k-中心點?”當存在“噪聲”和孤立點數據時,k-中心點比k-平均更健壯,這是因為中心點不像平均值那樣容易受到極端數據影響。但是,k-中心點的執行代價比k-平均方法高.

  這些啟發式方法對中小規模的數據庫中發現球狀簇很實用。為了對大規模的數據集進行聚類,以及處理復雜形狀的聚類,基於划分的方法需要進一步的擴展。

  2.層次的方法

  一個層次的聚類方法將數據對象組成一棵聚類的樹。根據層次分解是自底向上的還是自頂向下形成的,層次的聚類方法可以進一步分為凝聚的(agglomerative)和分裂的(divisive)層次聚類。

  (1)凝聚的層次聚類:這種自底向上的策略首先將每個對象作為單獨的一個簇,然后和並這些原子簇為越來越大的簇,直到所有的對像都在一個簇中,或者達到某個終止條件。

  (2)分裂的層次聚類:這種自頂向下的策略與凝聚的層次聚類相反,它首先將所有的對象置於一個簇中。然后逐漸細分為越來越小的簇,直到每個對象在單獨的一個簇中,或者達到一個終止條件,例如打到了某個希望的簇數目后者兩個簇之間的距離超過了某個閥值。

  例2 圖2-3描述了一個凝聚的層次聚類方法AGNES(Agglomerative NESting)和一個分裂的層次聚類方法DIANA(Divisive Analysis)在一個包含五個對象的數據集合{a,b,c,d,e}上的處理過程。最初,AGNES將每個對象作為一個簇,然后這些簇根據某些准則一步步合並。例如,如果簇C1中的一個對象和簇 C2中的一個對象之間的距離使所有屬於不同簇的對象間歐式距離最小的,C1和C2可能被合並。其每個簇可以被簇中所有對象代表,兩個簇間的相似度由兩個不同簇中距離最近的數據點對的相似度來確定。聚類的合並過程反復進行直到所有對象最終合並為一個簇。

 

圖2-3 在對象集合(a,b,c,d)上的凝聚與分裂層次聚類

  在DIANA方法處理過程中,所有的對象都放在一個簇中。根據一些原則(如簇中最鄰近的對象的最大歐氏距離),將該簇分裂。簇的分裂過程反復進行,直到最終每個新的簇只包含一個對象。

  層次聚類方法盡管簡單,但經常會遇到合並或分裂點選擇的困難。這樣的選擇是非常關鍵的,因為一旦一組對象(合並或分裂)完成,它就不能被撤銷,下一步的處理將在新完成的簇上進行。這個嚴格規定是有用的,由於不用擔心組合數目的不同選擇,計算代價會比較小。但是,已做的處理不能被撤消,聚類之間也不能交換對象。如果在某一步沒有很好的選擇合並或分裂的決定,可能會導致低質量的聚類結果。而且,這種聚類不具有很好的可伸縮性。因為合並或分裂的決定需要檢查和估算大量的對象或結果。

  改進層次方法的聚類質量的一個有希望的方向是將層次聚類和其他聚類技術集成。有兩種方法可以改進層次聚類的結果:

  (i) 在每層划分中,仔細分析對象間的“聯接”,例如CURE和Chameleon中的做法。

  (ii)綜合層次凝聚和迭代的重定位方法。首先用自底向上的層次算法,然后用迭代的重定位來改進結果。例如BIRCH中的方法。

  3.基於密度的方法

  絕大多數划分方法給予對象之間的距離進行聚類。這樣的方法只能發現球狀的簇,而在發現任意形狀的簇上遇到了困難。隨之提出了基於密度的聚類方法,它是將簇看作是數據空間中被低密度區域分割開的高密度區域。其主要思想是:只要鄰近區域的密度(對象或數據點的數目)超出了某個閥值,就繼續聚類。也就是說,對給定類中的每個數據點,在一個給定范圍的區域中必須至少某個數目的點。這樣的方法可以用來過濾“噪聲”孤立點數據,發現任意形狀的簇。

  DBSCAN是一個有代表性的基於密度的方法,它根據一個密度閥值來控制簇的增長。

  OPTICS是另一個基於密度的方法,它為自動的和交互的聚類分析計算一個聚類順序。

  4.基於網格的方法

  基於網格的方法把對象空間量化為有限數目的單元,形成一個網格結構。所有的聚類操作都在這個網格結構(即量化的空間)上進行。這種方法的主要優點是處理速度快,其處理時間獨立與數據對象的數目,只與量化空間中的每一維的單元數目有關。

  基於網格方法的有代表性的例子:STING,它利用存儲在網格單元中的統計信息;WaveCluster,它利用一種小波變換方法來聚類對象;CLIQUE,它是在高維數據空間中基於網格和密度的聚類方法。

  5.基於模型的方法

  基於模型的方法為每一個簇假定一個模型,尋找數據對給定模型的最佳擬合。一個基於模型的算法可能通過構建反映數據點空間分布密度函數來定位聚類。它也基於標准的統計數字自動決定聚類的數目,考慮“噪聲”數據或孤立點,從而產生健壯的聚類方法。這樣的方法經常基於這樣的假設:數據是根據潛在的概率分布生成的。

  基於模型的方法主要有兩類:統計學方法和神經網絡方法。

  一些聚類算法集成了多種聚類方法的思想,所以有時將某個給定的算法划分為屬於某些聚類方法是困難的。此外,某些應用可能有特定的聚類標准,要求綜合多個聚類技術。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM