聚類

一、分級聚類 Hierarchical Cluster
分級聚類通過連續不斷的將最爲相似的羣組兩兩合併,來構造一個羣組的層次結構。其中的每個羣組都是從單一元素開始,在每次迭代的過程中,都會計算兩個羣體之間的距離,並將距離最近的兩個羣組合並。並重復這一過程,直到只剩一個羣組。
代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;
二、劃分法
使用這個基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;
1、 K-Means Cluster
K-means算法是硬聚類算法,是典型的基於原型的目標函數聚類方法的代表,它是數據點到原型的某種距離作爲優化的目標函數,利用函數求極值的方法得到迭代運算的調整規則。K-means算法以歐式距離作爲相似度測度,它是求對應某一初始聚類中心向量V最優分類,使得評價指標J最小。算法採用誤差平方和準則函數作爲聚類準則函數。
原理如圖:
這裏寫圖片描述
公式:
這裏寫圖片描述
1、隨機選取K個質心的值

2、計算各個點到質心的距離

3、將點的類劃分爲離他最近的質心,形成K個cluster

4、根據分類好的cluster,在每個cluster內重新計算質心(平均每個點的值)

5、重複迭代2-4步直到滿足迭代次數或誤差小於指定的值

2、K-medoids
1、隨機選取K個質心的值 (質心必須是某些樣本點的值,而不是任意值)

2、計算各個點到質心的距離

3、將點的類劃分爲離他最近的質心,形成K個cluster

4、根據分類好的cluster,在每個cluster內重新計算質心:

         4.1 計算cluster內所有樣本點到其中一個樣本點的曼哈頓距離和(絕對誤差)

         4.2  選出使cluster絕對誤差最小的樣本點作爲質心

5、重複迭代2-4步直到滿足迭代次數或誤差小於指定的值

以上就可以看出兩者之間的區別:

k-means的質心是各個樣本點的平均,可能是樣本點中不存在的點。k-medoids的質心一定是某個樣本點的值。
三、密度算法
基於密度的方法(density-based methods),基於密度的方法與其它方法的一個根本區別是:它不是基於各種各樣的距離的,而是基於密度的。這樣就能克服基於距離的算法只能發現“類圓形”的聚類的缺點。
這個方法的指導思想就是,只要一個區域中的點的密度大過某個閾值,就把它加到與之相近的聚類中去。
代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等;
四、圖論聚類法
圖論聚類方法解決的第一步是建立與問題相適應的圖,圖的節點對應於被分析數據的最小單元,圖的邊(或弧)對應於最小處理單元數據之間的相似性度量。因此,每一個最小處理單元數據之間都會有一個度量表達,這就確保了數據的局部特性比較易於處理。圖論聚類法是以樣本數據的局域連接特徵作爲聚類的主要信息源,因而其主要優點是易於處理局部數據的特性。
五、網格算法
基於網格的方法(grid-based methods),這種方法首先將數據空間劃分成爲有限個單元(cell)的網格結構,所有的處理都是以單個的單元爲對象的。這麼處理的一個突出的優點就是處理速度很快,通常這是與目標數據庫中記錄的個數無關的,它只與把數據空間分爲多少個單元有關。
代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法;
六、模型算法
基於模型的方法(model-based methods),基於模型的方法給每一個聚類假定一個模型,然後去尋找能夠很好的滿足這個模型的數據集。這樣一個模型可能是數據點在空間中的密度分佈函數或者其它。它的一個潛在的假定就是:目標數據集是由一系列的概率分佈所決定的。
通常有兩種嘗試方向:統計的方案和神經網絡的方案。

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