【讀書筆記-數據挖掘概念與技術】聚類分析:基本概念和方法


imageimage

下圖摘自:http://blog.163.com/qianshch@126/blog/static/48972522201092254141315/

564075853345882448

 


主要的聚類方法可以划分為以下幾類:

          划分方法

          層次方法

          基於密度的方法

          基於網格的方法

聚類是典型的無監督學習。

wiki:

數據聚類算法可以分為結構性或者分散性。結構性算法利用以前成功使用過的聚類器進行分類,而分散型算法則是一次確定所有分類。結構性算法可以從上至下或者從下至上雙向進行計算。從下至上算法從每個對象作為單獨分類開始,不斷融合其中相近的對象。而從上至下算法則是把所有對象作為一個整體分類,然后逐漸分小。

分割式聚類算法,是一次性確定要產生的類別,這種算法也已應用於從下至上聚類算法。

基於密度的聚類算法,是為了挖掘有任意形狀特性的類別而發明的。此算法把一個類別視為數據集中大於某閾值的一個區域。DBSCAN和OPTICS是兩個典型的算法。

許多聚類算法在執行之前,需要指定從輸入數據集中產生的分類個數。除非事先准備好一個合適的值,否則必須決定一個大概值,關於這個問題已經有一些現成的技術。


划分方法:把對象組織成多個互斥的組或簇

K-means——K-均值

優點:簡單

缺點:受離群點影響較大,因為它基於形心

以下轉自:http://blog.csdn.net/heavendai/article/details/7029465

首先 3 個中心點被隨機初始化,所有的數據點都還沒有進行聚類,默認全部都標記為紅色,如下圖所示:

iter_00

然后進入第一次迭代:按照初始的中心點位置為每個數據點着上顏色,這是代碼中第 41 到 43 行所做的工作,然后 45 到 47 行重新計算 3 個中心點,結果如下圖所示:

iter_01

可以看到,由於初始的中心點是隨機選的,這樣得出來的結果並不是很好,接下來是下一次迭代的結果:

iter_02

可以看到大致形狀已經出來了。再經過兩次迭代之后,基本上就收斂了,最終結果如下:

iter_04

不過正如前面所說的那樣 k-means 也並不是萬能的,雖然許多時候都能收斂到一個比較好的結果,但是也有運氣不好的時候會收斂到一個讓人不滿意的局部最優解,例如選用下面這幾個初始中心點:

iter_00_bad

最終會收斂到這樣的結果:

iter_03_bad

不得不承認這並不是很好的結果。不過其實大多數情況下 k-means 給出的結果都還是很令人滿意的,算是一種簡單高效應用廣泛的 clustering 方法。

image

K-中心點

image

把均值換成了中心,圍繞中心點的划分(PAM)。

image

如何運用在大數據集?

image

image


層次方法

值得注意的是,層次聚類方法是不可逆的,也就是說,當通過凝聚式的方法將兩組合並后,無法通過分裂式的辦法再將其分離到之前的狀態,反之亦然。另 外,層次聚類過程中調查者必須決定聚類在什么時候停止,以得到某個數量的分類。最后,必須記住,在不必要的情況下應該小心使用層次聚類方法。最好用於有潛 在層次結構的數據上。

簇之間具有層次關系。如下圖,樹的最底層有5個聚類,在上一層中,聚類6包含數據點1和數據點2,聚類7包含數據點4和數據點5。隨着我們自下而上遍歷樹,聚類的數目越來越少。由於整個聚類樹都保存了,用戶可以選擇查看在樹的任意層次上的聚類。

810a19d8bc3eb1351e89fd05a41ea8d3fc1f44c5

凝聚的層次聚類:由小到大,從每個對象形成自己的簇開始,迭代地把簇合並成越來越大的簇——AGNES

分裂的層次聚類:由大到小,從把所有對象置於一個簇中開始,該簇是層次結構的根——DIANA

wiki:層次聚類算法,要么是自底向上聚集型的,即從葉子節點開始,最終匯聚到根節點;要么是自頂向下分裂型的,即從根節點開始,遞歸的向下分裂。

任意非負值的函數都可以用於衡量一對觀測值之間的相似度。決定一個類別是否分裂或者合並的是一個連動的標准,它是兩兩觀測值之間距離的函數。

在一個指定高度上切割此樹,可以得到一個相應精度的分類。

聚集型層次聚類

Raw data

它的層次聚類樹如下圖

Traditional representation

 

簇與簇之間的連接度量:

image

凝聚式方法是層次聚類中被廣泛使用的方法。過程中,會產生一 系列的分划:最初的是n個單成員的類,最后的划分是一個包含全部個體的單個類。凝聚式聚類有很多方法,但基本的操作是相似的,在每一步中,將距離最近的類 或者個體融合成一個類。方法之間的差異只是由不同的個體和組之間,或組與組之間的距離的計算方法而帶來的。下面介紹一些常用的方法。

單連接算法(single linkage algorithm)又稱最近鄰 (nearest neighbour)方法。這個方法使用數據的相似度矩陣或距離矩陣,定義類間距離為兩類之間數據的最小距離。這個方法不考慮類結構。可能產生散亂的分 類,特別是在大數據集的情況下。因為它可以產生chaining現象,當兩類之間出現中間點的時候,這兩類很有可能會被這個方法合成一類。單連鎖也可以用 於分裂式聚類,用來分開最近鄰距離最遠的兩組。

全連接算法(complete linkage algorithm)又稱最遠鄰(farthest neightbour)方法。同樣從相似度矩陣或距離矩陣出發,但定義距離為兩類之間數據的最大距離。同樣不考慮到類的結構。傾向於找到一些緊湊的分類。

 

image

BIRCH:使用聚類特征樹多階段聚類

image

image

image

image

(組)平均連鎖(group average linkage) 又稱為 UPGMA(Unweighted Pair-Group Methodusing the Average approach)。跟前兩個方法一樣,從相似度矩陣或距離矩陣出發,但定義距離為類間數據兩兩距離的平均值。這個方法傾向於合並差異小的兩個類。(距 離)介於單連鎖和全連鎖之間。它考慮到了類的結構,產生的分類具有相對的魯棒性。

質心連鎖(centroid linkage)又稱為 UPGMC(Unweighted Paire-Group Method using Centroid approach)。不同於前面的方法,它從距離矩陣和原始數據出發,一般定義距離為平方歐幾里得距離(可以使用其他距離測度方法,但是可能會對缺少原始 數據的闡釋,比如“質心”的概念),此距離為個體與組的質心(所有成員的原始數據均值),或組與組的質心距離。

中值連鎖(median linkage)又稱為WPGMC (Weighted Pair-Group Method using Centroid approach。跟前面的UPGMC不同的是,在計算組的質心時,將合成該組的兩部分(組組,個體和組?)按照相同的權重計算,也就是說算出的質心實際 上是組成該組的兩部分的質心的均值。

Chameleon:使用動態建模多階段層次聚類

凝聚層次聚類算法,基於子簇的相似度反腐地合並子簇,相似度考慮每個簇的互聯性RI和臨近性RC。

概率層次聚類:使用概率模型度量簇之間的距離,克服算法層次聚類中的一些特點:1)為層次聚類選擇一種好的距離度量常常是困難的;2)為了使用算法的方法,數據對象不能有缺失的屬性值;3)大部分算法的層次聚類方法都是啟發式的,在每一步局部的搜索好的合並/划分,因此,優化目標不清晰。

步驟:

        1:假定數據點符合某種分布;

         2:求出模型生成的概率;

         3:求模型生成的似然;

         4:使得似然最大,求出分布中的參數;

         5:求出兩簇之間的距離;

image


基於密度的方法——用於發現任意形狀的簇

image

DBSCAN,OPTICS,DENCLUE

DBSCAN:一種基於高密度連通區域基於密度的聚類

概念:

       半徑;(用戶給定)

       核心對象的領域中要求的最少點數;(用戶給定)

       領域的密度可以簡單地用領域內的對象數度量;

       直接密度可達;

       密度相連;

image

OPTICS:通過點排序識別聚類結構

概念:

        核心距離;

        可達距離;

image

DENCLUE:基於密度分布函數的聚類

image

image


基於網格的方法——空間驅動

優點:處理速度快

STING:考察存儲在網格單元中的統計信息

CLIQUE:基於網格和密度的聚類方法,用於高維數據空間中的子空間聚類

image

STING:統計信息網格——基於網格的多分辨率的聚類技術

image

image

image

image

CLIQUE:一種類似於Apriori的子空間聚類方法

image

image

image

image


聚類評估

image

估計聚類趨勢——數據集上聚類分析是有意義的,當且僅當存在非隨機結構

霍普金斯統計量:檢驗空間分布的變量的空間隨機性

確定簇數

法1:

image

法2:

image

確定聚類質量

外在方法——監督方法

核心:給定基准,對聚類賦予評分

          同質性:簇越純越好

          完全性:屬於相同類別的對象分配到相同的簇

          碎布袋:不能與其他對象合並的對象,把異種對象放入一個純的簇中應該比放入碎布袋中受更大的“處罰”

          小簇保持性:小類別在聚類中繼續別划分開,使其更不易被發現,這是有害的

度量:BCubed精度召回率

image

內在方法——無監督方法

沒有基准可用

輪廓系數:考察簇的分離情況和簇的緊湊情況

image


免責聲明!

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



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