層次聚類

層次聚類分爲:凝聚法和分裂法。html

凝聚法:算法

假設有N個待聚類的樣本,對於層次聚類來講,基本步驟就是:spa

       一、(初始化)把每一個樣本歸爲一類,計算每兩個類之間的距離,也就是樣本與樣本之間的類似度(傑卡德距離).net

       二、尋找各個類之間最近的兩個類,把他們歸爲一類(這樣類的總數就少了一個);htm

       三、從新計算新生成的這個類與各個舊類之間的類似度;blog

       四、重複2和3直到全部樣本點都歸爲一類,結束。循環

整個聚類過程實際上是創建了一棵樹,在創建的過程當中,能夠經過在第二步上設置一個閾值,當最近的兩個類的距離大於這個閾值,則認爲迭代能夠終止。另外關鍵的一步就是第三步,如何判斷兩個類之間的類似度有很多種方法。能夠採用計算兩個類中的距離。方法

類似度量:傑卡德距離 http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.htmldi

可是計算複雜度比較高,爲了尋找距離最近/遠和均值,都須要對全部的距離計算個遍,須要用到雙重循環。另外從算法中能夠看出,每次迭代都只能合併兩個子類,這是很是慢的。vi

 

分裂法:

另外有一種聚類方法叫作divisive hierarchical clustering(自頂而下),過程剛好是相反的,一開始把全部的樣本都歸爲一類,而後逐步將他們劃分爲更小的單元,直到最後每一個樣本都成爲一類。在這個迭代的過程當中經過對劃分過程當中定義一個鬆散度,當鬆散度最小的那個類的結果都小於一個閾值,則認爲劃分能夠終止。這種方法用的不廣泛,原文也沒有作更多介紹。

        因爲這種層次結構,普通的k-means也被稱爲一種flat clustering。

相關文章
相關標籤/搜索