聚類算法筆記


     轉載請注明出處: http://www.cnblogs.com/gufeiyang

   個人微博:flysea_gu

 

聚類的算法有很多,現在已知的算法主要有以下四中類型。划分聚類、層次聚類、基於密度的聚類、基於表格的聚類。

1)划分聚類   對於給定的數據集,划分聚類需要知道要划分簇的數目k(k<=n, n是數據集中項的數目)。划分聚類將數據分為k組,每組至少有一項。大多數划分聚類都是基於距離的。 一般情況下給出了聚類數目k,首先會產生一個初始的划分。然后用迭代的方法通過更改數據項所屬的簇來提高划分的質量。一個好的划分的標准是同一個簇內的數據項彼此相似,相反地,不同簇的項有較大的區別。實現全局最優划分往往很難在復雜度忍受的范圍內做到。然而,大多數應用都選取了一些啟發式方法。比如像選取貪心策略的k-means和k-medoids算法,都極大地提高了划分質量,並達到了一個局部最優解。這些啟發式聚類算法在中小型數據集中挖掘類似球形簇表現非常好。

2)層次聚類  層次聚類就是通過對數據集按照某種方法進行層次分解,直到滿足某種條件為止。層次聚類根據划分的方法分為凝聚和分割的兩種。凝聚的方法也叫做自底向上方法。它每次迭代將最相近兩個項(或者組)合並形成一個新的組。直至最終形成一個組或者達到其他停止的條件。分割的方法也叫自頂向下,與凝聚的方法相反。開始的時候講所有數據看成一個組,每一次迭代一個簇就被划分成兩個小一點簇。直到最終每個項都是一個簇或者達到了某個停止條件。層次聚類可以是基於距離、基於密度、基於連接的。層次聚類有一個缺點:一旦一個凝聚或分割形成了,這個操作永遠不能再更改了。這樣的好處就是可以計算復雜度相對較小。

3)基於密度的聚類 很多聚類算法都是根據距離計算的。 這樣子的話很容易發現球形的簇,然后很難發現其他形狀的簇。基於密度的算法認為,在整個樣本空間點中,各目標類簇是由一群的稠密樣本點組成的,而這些稠密樣本點被低密度區域(噪聲)分割,而算法的目的就是要過濾低密度區域,發現稠密樣本點。這類算法往往重視數據項的密集程度,因此這些算法都是基於連接的。雖然是基於連接的,但是也強調了連接過程中數據項周圍的密度。這樣就能發現各種任意形狀的聚類簇。

4)基於網格的聚類  這類算法將數據項的空間划分成有限數目的網格。所有的聚類操作都是在網格上進行的。這樣最大的好處是可以計算速度相當快。因為計算過程跟數據項的數目沒有關系,只與每一維網格的數目和維數有關系。對於大數據的數據挖掘問題,網格的方法效率往往會很不錯。然而我覺得網格只是一種思想,這種思想往往要和其他的算法相結合才能解決好實際問題,比如聚類。


免責聲明!

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



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