層次聚類演算法(二)

2021-07-27 11:36:30 字數 1366 閱讀 7870

上篇博文簡單的講述了層次聚類的基本概念,接下來就是具體的講述凝聚的聚類演算法agnes演算法與**的聚類演算法diana聚類演算法。

agnes演算法:

演算法描述:

輸入:包含n個物件的資料庫,終止條件簇的數目k

輸出:k個簇

(1)       將每個物件當成乙個初始簇

(2)       repeat

(3)       根據兩個簇中最近的資料點找到最近的兩個簇(這個地方的最近的衡量標準就是上篇博文所講的四種距離度量方式)

(4)       合併兩個簇,生成新的簇的集合

(5)       until達到定義的簇的數目

演算法效能:

(1)       簡單,但遇到合併點選擇困難的情況。

(2)       一旦一組物件被合併,不能撤銷

(3)       演算法的複雜度為o(n的平方),不適合大資料集

不管是從原理上還是實現上,agnes演算法都顯得十分簡單。在k-means演算法中,初始化中心點的確定可以由agnes、diana演算法來大致確定。

diana演算法:

輸入:包含n個物件的資料庫,終止條件簇的數目k

輸出:k個簇,達到終止條件規定簇數目

(1)將所有物件整個當成乙個初始簇  //

初始化操作

(2  for ( i=1;i!=k;i++) dobegin

(3)   在所有簇中挑選出具有最大直徑的簇;

(4)   找出所挑出簇裡與其他點平均相異度最大的乙個點放入splinter group,剩餘的放入old party中。

(5)   repeat

(6)        在old party裡找出到splintergroup中點的最近距離不大於old party中點的最近距離的點,並將該點加入splinter group

(7)   until 沒有新的old party的點被分配給splintergroup;

(8) splinter group 和old party為被選中的簇**成的兩個簇,與其他簇一起組成新的簇集合。

(9)end

演算法基本思想:每次選出最大的簇,將最大的簇進行**為兩個簇。

演算法效能:

缺點是已做的**操作不能撤銷,類之間不能交換物件。如果在某步沒有選擇好**點,可能會導致低質量的聚類結果。大資料集不太適用。

層次聚類缺點:

傳統的層次聚類演算法的效率比較低

o(tn2 )t: 

迭代次數

n: 樣本點數,最明顯的乙個缺點是不具有再分配能力,即如果樣本點

a 在某次迭代過程中已經劃分給類簇

c1 ,那麼在後面的迭代過程中

a 將永遠屬於類簇

c1 ,這將影響聚類結果的準確性。

聚類演算法 層次聚類演算法

層次聚類演算法 hierarchical clustering method 又稱為系統聚類法 分級聚類法。層次聚類演算法又分為兩種形式 凝聚層次聚類 首先將每個物件作為乙個簇,然後合併這些原子簇為越來越大的簇,直到某個終結條件被滿足。層次聚類 首先將所有物件置於乙個簇中,然後逐漸細分為越來越小的簇...

層次聚類演算法(一)

層次聚類 hierarchical clustering 試圖在不同層次上對資料集進行劃分,從而形成樹形的聚類結構,資料集的劃分可採用 自底向上 的聚合策略,也可以採用 自頂向下 的分拆策略。即層次聚類可以是凝聚的也可以是 的。凝聚的層次聚類方法使用自底向上的策略。即剛開始每個點都認為是乙個簇,然後...

層次聚類演算法(三)

上邊博文學習了一下agnes演算法與diana演算法,針對伸縮性差一級不能撤銷先前步驟所做的工作,學習一下birch聚類演算法。birch演算法 balanced iterative reducing and clustering using hierarchies.利用層次結構的平衡迭代規約和聚類...