上篇博文簡單的講述了層次聚類的基本概念,接下來就是具體的講述凝聚的聚類演算法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.利用層次結構的平衡迭代規約和聚類...