agnes演算法(自底向上層次聚類)
agnes(agglomerative nesting) 是凝聚的層次聚類演算法,如果簇c1中的乙個物件和簇c2中的乙個物件之間的距離是所有屬於不同簇的物件間歐式距離中最小的,c1和c2可能被合併。這是一種單連線方法,其每個簇可以被簇中的所有物件代表,兩個簇之間的相似度由這兩個簇中距離最近的資料點對的相似度來確定。
演算法描述:
輸入:包含n個物件的資料庫,終止條件簇的數目k
輸出:k個簇
(1)
將每個物件當成乙個初始簇
(2)
repeat
(3)
根據兩個簇中最近的資料點找到最近的兩個簇
(4)
合併兩個簇,生成新的簇的集合
(5)
until達到定義的簇的數目
演算法效能:
(1)
簡單,但遇到合併點選擇困難的情況。
(2)
一旦一組物件被合併,不能撤銷
(3)
演算法的複雜度為o(n的平方),不適合大資料集
diana(divisive analysis)演算法屬於**的層次聚類,首先將所有的物件初始
化到乙個簇中,然後根據一些原則(比如最鄰近的最大歐式距離),將該簇分類。直到到達使用者指定的簇數目或者兩個簇之間的距離超過了某個閾值。
diana用到如下兩個定義:
(1)
簇的直徑:在乙個簇中的任意兩個資料點都有乙個歐氏距離,這些距離中的最大值是簇的直徑
(2)
平均相異度(平均距離):
演算法描述:
輸入:包含n個物件的資料庫,終止條件簇的數目k
輸出:k個簇,達到終止條件規定簇數目
(1)
將所有物件整個當成乙個初始簇
(2)
for ( i=1;i!=k;i++) do begin
(3)
在所有簇中挑選出具有最大直徑的簇;
(4)
找出所挑出簇裡與其他點平均相異度最大的乙個點放入splinter group,剩餘的放入old party中。
(5)
repeat
(6)
在old party裡找出到splinter group中點的最近距離不大於old party中點的最近距離的點,並將該點加入splinter group
(7)
until 沒有新的old party的點被分配給splinter group;
(8)
splinter group 和old party為被選中的簇**成的兩個簇,與其他簇一起組成新的簇集合
(9)
end演算法效能:
缺點是已做的**操作不能撤銷,類之間不能交換物件。如果在某步沒有選擇好**點,可能會導致低質量的聚類結果。大資料集不太適用。
層次聚類演算法的分析:
層次聚類法的優點是可以通過設定不同的相關引數值,得到不同粒度上的多層次聚類結構;在聚類形狀方面,層次聚類適用於任意形狀的聚類,並且對樣本的輸入順序是不敏感的。
層次聚類的不足之處是演算法的時間複雜度大,層次聚類的結果依賴聚類的合併點和**點的選擇。並且層次聚類過程最明顯的特點就是不可逆性,由於物件在合併或**之後,下一次聚類會在前一次聚類基礎之上繼續進行合併或**,也就是說,一旦聚類結果形成,想要再重新合併來優化聚類的效能是不可能的了。聚類終止的條件的不精確性是層次聚類的另乙個缺點,層次聚類要求指定乙個合併或分解的終止條件,比如指定聚類的個數或是兩個距離最近的聚類之間最小距離閾值。
聚類演算法 層次聚類演算法
層次聚類演算法 hierarchical clustering method 又稱為系統聚類法 分級聚類法。層次聚類演算法又分為兩種形式 凝聚層次聚類 首先將每個物件作為乙個簇,然後合併這些原子簇為越來越大的簇,直到某個終結條件被滿足。層次聚類 首先將所有物件置於乙個簇中,然後逐漸細分為越來越小的簇...
聚類之層次聚類 基於劃分的聚類(
目錄 一層次聚類 層次聚類的原理及分類 層次聚類的流程 層次聚類的優缺點 二劃分聚類法k means kmeans演算法的原理 k均值的優缺點及分類 k means與dbscan的區別 k means注意問題 三基於密度的聚類 dbscan的概念 簇的生成原理及過程 根據資料點的密度分為三類點 db...
層次聚類(1)
層次聚類演算法不同於其它演算法,主要體現在它不是只生成乙個分類結果,而是產生一系列原模式集合的分類結果,每個分類結果滿足一些限制。x 是n個l維特徵向量組成的集合,我們就是要對這個集合中的特徵向量分類。clustering r 是某個聚類結果,就叫他類簇吧,我想這樣叫,也許別人已經定義了類簇,但是我...