聚類算法

聚類算法

聚類分析又稱群分析,它是研究(樣品或指標)分類問題的一種統計分析方法,同時也是數據挖掘的一個重要算法。聚類(Cluster)分析是由若干模式(Pattern)組成的,通常,模式是一個度量(Measurement)的向量,或者是多維空間中的一個點。聚類分析以相似性為基礎,在一個聚類中的模式之間比不在同一聚類中的模式之間具有更多的相似性。

算法起源

俗話說:“ 物以類聚,人以群分”,在自然科學和社會科學中,存在著大量的分類問題。所謂類,通俗地說,就是指相似元素的集合。

聚類分析起源於分類學,在古老的分類學中,人們主要依靠經驗和專業知識來實現分類,很少利用 數學工具進行定量的分類。隨著人類科學技術的發展,對分類的要求越來越高,以致有時僅憑經驗和專業知識難以確切地進行分類,於是人們逐漸地把數學工具引用到了分類學中,形成了 數值分類學,之後又將 多元分析的技術引入到數值分類學形成了 聚類分析。 聚類分析內容非常豐富,有 系統聚類法、有序樣品聚類法、動態聚類法、 模糊聚類法、圖論聚類法、聚類預報法等。

算法分類

很難對聚類方法提出一個簡潔的分類,因為這些類別可能重疊,從而使得一種方法具有幾類的特徵,儘管如此,對於各種不同的聚類方法提供一個相對有組織的描述依然是有用的,為聚類分析計算方法主要有如下幾種:

劃分法

劃分法(partitioning methods),給定一個有N個元組或者紀錄的數據集,分裂法將構造K個分組,每一個分組就代表一個聚類,K

(1) 每一個分組至少包含一個數據紀錄;

(2)每一個數據紀錄屬於且僅屬於一個分組(注意:這個要求在某些模糊聚類算法中可以放寬);

對於給定的K,算法首先給出一個初始的分組方法,以後通過反覆疊代的方法改變分組,使得每一次改進之後的分組方案都較前一次好,而所謂好的標準就是:同一分組中的記錄越近越好,而不同分組中的紀錄越遠越好。

大部分劃分方法是基於距離的。給定要構建的分區數k,劃分方法首先創建一個初始化劃分。然後,它採用一種疊代的重定位技術,通過把對象從一個組移動到另一個組來進行劃分。一個好的劃分的一般準備是:同一個簇中的對象儘可能相互接近或相關,而不同的簇中的對象儘可能遠離或不同。還有許多評判劃分質量的其他準則。傳統的劃分方法可以擴展到子空間聚類,而不是搜尋整個數據空間。當存在很多屬性並且數據稀疏時,這是有用的。為了達到全局最優,基於劃分的聚類可能需要窮舉所有可能的劃分,計算量極大。實際上,大多數套用都採用了流行的啟發式方法,如k-均值和k-中心算法,漸近的提高聚類質量,逼近局部最優解。這些啟發式聚類方法很適合發現中小規模的資料庫中小規模的資料庫中的球狀簇。為了發現具有複雜形狀的簇和對超大型數據集進行聚類,需要進一步擴展基於劃分的方法。

使用這個基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;

層次法

層次法(hierarchical methods),這種方法對給定的數據集進行層次似的分解,直到某種條件滿足為止。具體又可分為“自底向上”和“自頂向下”兩種方案。

例如,在“自底向上”方案中,初始時每一個數據紀錄都組成一個單獨的組,在接下來的疊代中,它把那些相互鄰近的組合併成一個組,直到所有的記錄組成一個分組或者某個條件滿足為止。

層次聚類方法可以是基於距離的或基於密度或連通性的。層次聚類方法的一些擴展也考慮了子空間聚類。層次方法的缺陷在於,一旦一個步驟(合併或分裂)完成,它就不能被撤銷。這個嚴格規定是有用的,因為不用擔心不同選擇的組合數目,它將產生較小的計算開銷。然而這種技術不能更正錯誤的決定。已經提出了一些提高層次聚類質量的方法。

代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;

密度算法

基於密度的方法(density-based methods),基於密度的方法與其它方法的一個根本區別是:它不是基於各種各樣的距離的,而是基於密度的。這樣就能克服基於距離的算法只能發現“類圓形”的聚類的缺點。

這個方法的指導思想就是,只要一個區域中的點的密度大過某個閾值,就把它加到與之相近的聚類中去。

代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等;

圖論聚類法

圖論聚類方法解決的第一步是建立與問題相適應的圖,圖的節點對應於被分析數據的最小單元,圖的邊(或弧)對應於最小處理單元數據之間的相似性度量。因此,每一個最小處理單元數據之間都會有一個度量表達,這就確保了數據的局部特性比較易於處理。圖論聚類法是以樣本數據的局域連線特徵作為聚類的主要信息源,因而其主要優點是易於處理局部數據的特性。

格線算法

基於格線的方法(grid-based methods),這種方法首先將數據空間劃分成為有限個單元(cell)的格線結構,所有的處理都是以單個的單元為對象的。這么處理的一個突出的優點就是處理速度很快,通常這是與目標資料庫中記錄的個數無關的,它只與把數據空間分為多少個單元有關。

代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法;

模型算法

基於模型的方法(model-based methods),基於模型的方法給每一個聚類假定一個模型,然後去尋找能夠很好的滿足這個模型的數據集。這樣一個模型可能是數據點在空間中的密度分布函式或者其它。它的一個潛在的假定就是:目標數據集是由一系列的機率分布所決定的。

通常有兩種嘗試方向:統計的方案和神經網路的方案。

參考資料
聚類算法聚類算法

相關搜尋

熱門詞條

聯絡我們