聚類分析
聚類分析 |
聚類分析指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。它是一種重要的人類行為。
聚類分析的目標就是在相似的基礎上收集數據來分類。聚類源於很多領域,包括數學,計算機科學,統計學,生物學和經濟學。在不同的應用領域,很多聚類技術都得到了發展,這些技術方法被用作描述數據,衡量不同數據源間的相似性,以及把數據源分類到不同的簇中。
目錄
簡介
聚類與分類的不同在於,聚類所要求劃分的類是未知的。
聚類是將數據分類到不同的類或者簇這樣的一個過程,所以同一個簇中的對象有很大的相似性,而不同簇間的對象有很大的相異性。
從統計學的觀點看,聚類分析是通過數據建模簡化數據的一種方法。傳統的統計聚類分析方法包括系統聚類法、分解法、加入法、動態聚類法、有序樣品聚類、有重疊聚類和模糊聚類等。採用k-均值、k-中心點等算法的聚類分析工具已被加入到許多著名的統計分析軟件包中,如SPSS、SAS等。
從機器學習的角度講,簇相當於隱藏模式。聚類是搜索簇的無監督學習過程。與分類不同,無監督學習不依賴預先定義的類或帶類標記的訓練實例,需要由聚類學習算法自動確定標記,而分類學習的實例或數據對象有類別標記。聚類是觀察式學習,而不是示例式的學習。
聚類分析是一種探索性的分析,在分類的過程中,人們不必事先給出一個分類的標準,聚類分析能夠從樣本數據出發,自動進行分類。聚類分析所使用方法的不同,常常會得到不同的結論。不同研究者對於同一組數據進行聚類分析,所得到的聚類數未必一致。
從實際應用的角度看,聚類分析是數據挖掘的主要任務之一。而且聚類能夠作為一個獨立的工具獲得數據的分布狀況,觀察每一簇數據的特徵,集中對特定的聚簇集合作進一步地分析。聚類分析還可以作為其他算法(如分類和定性歸納算法)的預處理步驟。
評價
聚類分析是數據挖掘中的一個很活躍的研究領域,並提出了許多聚類算法。傳統的聚類算法可以被分為五類:劃分方法、層次方法、基於密度方法、基於網格方法和基於模型方法。
1 劃分方法(PAM:PArtitioning method) 首先創建k個劃分,k為要創建的劃分個數;然後利用一個循環定位技術通過將對象從一個劃分移到另一個劃分來幫助改善劃分質量。典型的劃分方法包括:
k-means,k-medoids,CLARA(Clustering LARge Application),
CLARANS(Clustering Large Application based upon RANdomized Search).
FCM
2 層次方法(hierarchical method) 創建一個層次以分解給定的數據集。該方法可以分為自上而下(分解)和自下而上(合併)兩種操作方式。為彌補分解與合併的不足,層次合
並經常要與其它聚類方法相結合,如循環定位。典型的這類方法包括:
BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies) 方法,它首先利用樹的結構對對象集進行劃分;然後再利用其它聚類方法對這些聚類進行優化。
CURE(Clustering Using REprisentatives) 方法,它利用固定數目代表對象來表示相應聚類;然後對各聚類按照指定量(向聚類中心)進行收縮。
ROCK方法,它利用聚類間的連接進行聚類合併。
CHEMALOEN方法,它則是在層次聚類時構造動態模型。
3 基於密度的方法,根據密度完成對象的聚類。它根據對象周圍的密度(如DBSCAN)不斷增長聚類。典型的基於密度方法包括:
DBSCAN(Densit-based Spatial Clustering of Application with Noise):該算法通過不斷生長足夠高密度區域來進行聚類;它能從含有噪聲的空間數據庫中發現任意形狀的聚類。此方法將一個聚類定義為一組「密度連接」的點集。
OPTICS(Ordering Points To Identify the Clustering Structure):並不明確產生一個聚類,而是為自動交互的聚類分析計算出一個增強聚類順序。。
4 基於網格的方法,首先將對象空間劃分為有限個單元以構成網格結構;然後利用網格結構完成聚類。
STING(STatistical INformation Grid) 就是一個利用網格單元保存的統計信息進行基於網格聚類的方法。
CLIQUE(Clustering In QUEst)和Wave-Cluster 則是一個將基於網格與基於密度相結合的方法。
5 基於模型的方法,它假設每個聚類的模型並發現適合相應模型的數據。典型的基於模型方法包括:
統計方法COBWEB:是一個常用的且簡單的增量式概念聚類方法。它的輸入對象是採用符號量(屬性-值)對來加以描述的。採用分類樹的形式來創建一個層次聚類。
CLASSIT是COBWEB的另一個版本.。它可以對連續取值屬性進行增量式聚類。它為每個結點中的每個屬性保存相應的連續正態分布(均值與方差);並利用一個改進的分類能力描述方法,即不象COBWEB那樣計算離散屬性(取值)和而是對連續屬性求積分。但是CLASSIT方法也存在與COBWEB類似的問題。因此它們都不適合對大數據庫進行聚類處理.
傳統的聚類算法已經比較成功的解決了低維數據的聚類問題。但是由於實際應用中數據的複雜性,在處理許多問題時,現有的算法經常失效,特別是對於高維數據和大型數據的情況。因為傳統聚類方法在高維數據集中進行聚類時,主要遇到兩個問題。①高維數據集中存在大量無關的屬性使得在所有維中存在簇的可能性幾乎為零;②高維空間中數據較低維空間中數據分布要稀疏,其中數據間距離幾乎相等是普遍現象,而傳統聚類方法是基於距離進行聚類的,因此在高維空間中無法基於距離來構建簇。
高維聚類分析已成為聚類分析的一個重要研究方向。同時高維數據聚類也是聚類技術的難點。隨着技術的進步使得數據收集變得越來越容易,導致數據庫規模越來越大、複雜性越來越高,如各種類型的貿易交易數據、Web 文檔、基因表達數據等,它們的維度(屬性)通常可以達到成百上千維,甚至更高。但是,受「維度效應」的影響,許多在低維數據空間表現良好的聚類方法運用在高維空間上往往無法獲得好的聚類效果。高維數據聚類分析是聚類分析中一個非常活躍的領域,同時它也是一個具有挑戰性的工作。目前,高維數據聚類分析在市場分析、信息安全、金融、娛樂、反恐等方面都有很廣泛的應用。 [1]