【聚類分析】聚類算法初階引入

1 聚類分析基本概念

聚類分析將數據劃分成有意義或有用的簇。如果目標是劃分成有意義的組,則簇應當捕獲數據的自然結構。
聚類分析是一種分類的多元統計分析方法。按照個體或樣品的特徵將它們分類,使同一類別內的個體具有儘可能高的同質性(homogeneity),而類別之間則應具有儘可能高的異質性(heterogeneity)。
聚類是研究數據間邏輯上或物理上的相互關係的技術,其分析結果不僅可以揭示數據間的內在聯繫與區別,還可以爲進一步的數據分析與知識發現提供重要依據。它 是數據挖掘技術中的重要組成部分。作爲統計學的重要研究內容之一,聚類分析具有堅實的理論基礎,並形成了系統的方法學體系

2 聚類分析的應用

聚類分析是洞察數據分佈的獨立工具,也可以作爲其他算法預處理或者中間處理環節的方法。
一般而言,可分爲以下幾個方面:
(1)其他數據挖掘任務的關鍵中間環節:用於構建數據概要,用於分類、模式識別、假設生成和測試;用於異常檢測,檢測遠離羣簇的點。
(2)數據摘要、數據壓縮、數據降維:例如圖像處理中的矢量量化技術。創建一個包含所有簇原型的表,即每個原型賦予一個整數值,作爲它在表中的索引。每個對象用與它所在簇相關聯的原型的索引表示。
(3)協同過濾:用於推薦系統和用戶細分。
(4)動態趨勢檢測:對流數據進行聚類,檢測動態趨勢和模式。
(5)用於多媒體數據、生物數據、社交網絡數據的應用

舉例來說,在商務上,聚類能幫助市場分析人員從客戶基本庫中發現不同的客戶羣,並且用不同的購買模式來刻畫不同的消費羣體的特徵。在生物學上,聚類能用於幫助推導植物和動物的種類,基因和蛋白質的分類,獲得對種羣中固定結構的認識。聚類在地球觀測數據中相似地區的確定,根據房屋的類型、價值和位置對一個城市中房屋的分類發揮作用。聚類也能用來對web上的文檔進行分類,以發現有用的信息。聚類分析能作爲一種獨立的工具來獲得數據分佈的情況,觀察每個簇的特點,並對某些特定的節點進一步分析。

3 聚類算法的分類

聚類分析的算法可以分爲劃分法(Partitioning Methods)、層次法(Hierarchical Methods)、基於密度的方法(density-based methods)、基於網格的方法(grid-based methods)、基於模型的方法(Model-Based Methods)。

3.1 基於距離的方法

劃分算法和層次算法可以看做是基於距離的聚類算法。
劃分算法(partitioning method)是簡單地將數據對象劃分成不重疊的子集(簇),使得每個數據對象恰在一個子集中。
給定一個有N個元組或者紀錄的數據集,分裂法將構造K個分組,每一個分組就代表一個聚類,K

3.2 基於密度的方法

絕大多數劃分方法基於對象之間的距離進行聚類,這樣的方法只能發現球狀的類,而在發現任意形狀的類上有困難。因此,出現了基於密度的聚類方法,其主要思想是:只要鄰近區域的密度(對象或數據點的數目)超過某個閾值,就繼續聚類。也就是說,對給定類中的每個數據點,在一個給定範圍的區域內必須至少包含某個數目的點。這樣的方法可以過濾“噪聲”數據,發現任意形狀的類。但算法計算複雜度高,一般爲O(n^2),對於密度分佈不均的數據集,往往得不到滿意的聚類結果。
其代表算法有DBSCAN、OPTICS和DENCLUE等。

3.3 基於網格的方法

基於網格的方法把對象空間量化爲有限數目的單元,形成一個網格結構。所有的聚類操作都在這個網格結構(即量化空間)上進行。這種方法的主要優點是它的處理 速度很快,其處理速度獨立於數據對象的數目,只與量化空間中每一維的單元數目有關。但這種算法效率的提高是以聚類結果的精確性爲代價的。
它的代表算法有STING、CLIQUE、WAVE-CLUSTER等。

3.4 基於概率和生成模型的方法

基於模型的聚類算法爲每簇假定了一個模型,尋找數據對給定模型的最佳擬合。一個基於模型的算法可能通過構建反應數據點空間分佈的密度函數來定位聚類。它也基於標準的統計數字自動決定聚類的數目,過濾噪聲數據或孤立點,從而產生健壯的聚類方法。基於模型的聚類試圖優化給定的數據和某些數據模型之間的適應性。 這樣的方法經常是基於這樣的假設:數據是根據潛在的概率分佈生成的
基於模型的方法主要有兩類:統計學方法和網絡神經方法。其中,統計學方法有COBWEB算法,網絡神經方法有SOM算法

4 對聚類分析的要求

4.1 聚類質量

處理不同類型屬性的能力:許多算法被設計用來聚類數值類型的數據。但是,應用可能要求聚類其他類型的數據,如二元類型(binary),分類/標稱類型(categorical/nominal),序數型(ordinal)數據,或者這些數據類型的混合。

發現任意形態的羣簇:許多聚類算法基於歐幾里得或者曼哈頓距離度量來決定聚類。基於這樣的距離度量的算法趨向於發現具有相近尺度和密度的球狀簇。但是,一個簇可能是任意形狀的。提出能發現任意形狀簇的算法是很重要的。

處理噪聲的能力:絕大多數現實中的數據庫都包含了孤立點,缺失,或者錯誤的數據。一些聚類算法對於這樣的數據敏感,可能導致低質量的聚類結果。

4.2 可伸縮性

許多聚類算法在小於200個數據對象的小數據集合上工作得很好;但是,一個大規模數據庫可能包含幾百萬個對象,在這樣的大數據集合樣本上進行聚類可能會導致有偏的結果。我們需要具有高度可伸縮性的聚類算法
可伸縮性的聚類算法要求算法對所有數據進行聚類,能夠處理好高維數據,可以對流數據進行聚類,算法對數據輸入順序不敏感。

4.3 可解釋性和可用性

用戶希望聚類結果是可解釋的,可理解的,和可用的。也就是說,聚類可能需要和特定的語義解釋和應用相聯繫。

轉載請註明作者Jason Ding及其出處
Github博客主頁(http://jasonding1354.github.io/)
GitCafe博客主頁(http://jasonding1354.gitcafe.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
Google搜索jasonding1354進入我的博客主頁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章