additive tree
衡量相似性通常有2中做法:
1 spatial model: 計算點間的距離, 夾角等
2 network model: ultrametric tree, additive tree.
?
additive tree與ultrametric tree的不同之處是, additive有如下特性:
1) 類內距離可能大于類間距離
2) 外部點到類中點的距離不一樣。 a, b屬于D, ac != bc
3) ultra tree中所有葉節點到根等距離, 但additive tree不是。 additive tree中距離不依賴于root, 可以表示成unroot的形式
?
S記為點的距離矩陣(對稱的,對角線為0), 如果S中任意3點x,y,z滿足 d(x,y) <= max{d(x,z), d(y,z)}則稱為ultrametric inequility
?
如果任意4點x,y,u,v滿足d(x,y)+d(u,v) <= max{ d(x,u)+d(y,v), d(x,v)+d(y,u)} 則稱為additive inequility
?
?
tight cluster, if A of S:
max d(x,y) < min d(x, z),?? x, y in A, z in S-A
loose cluster, if A of S:
d(x,y) + d(u,v) < min{d(x,u)+d(y,v), d(x,v)+d(y,u)};??? x,y in A, u, v in S-A
?
?
additive tree是 loose cluster
?
=======================================20100810===============================
additive tree中有三類距離
Dij, 應用的輸入、觀測到的;????
Lij, i、j之間的branches之和; i,j不可能同時為兩個葉節點
Sij,?? i、j為nearest neighbour時,整個additive tree的所有branches的和.? S的計算公式為:
S12 = sigma(D1k+D2k)/(2n-2) + D12/2 + sigma(Dij)/(n-2);? i,j,k不為1,2;且i < j
?
每次挑選Sij最小的ij做為nearest neighbour;? 然后更新D矩陣:
D(i-j)k = (Dik + Djk)/2
?
得到最小的S(假設S12最小),以及更新了D之后, 再來衡量L1x, L2x; x為內部節點,1、2的parent
L1x=(D12+D1z-D2z)/2,?? L2x=(D12+D2z-D1z)/2
D1z=sigma(D1i)/(n-2), D2z=sigma(D2i)/(n-2); i 不為1、2; z表示不包含1、2的其他所有節點
?
========??=========可是至此為止, L并沒有用。 該算法復雜度為o(n**5).? 計算Sij需要N**2; 需要計算N**2個Sij; 需要迭代N輪。
?
?
studier & keppler 使用Mij代替Sij, 保證兩者同時取到最小值, 復雜度O(N**3)
Mij = Dij - (ri + rj)/(N-2).? ri = sigma(dik) 第i行的d之和。? 這種算法稱作simleNJ, 復雜度o(N**3)
假設M12最小, x為1、2合并后的parent,也就是新節點:
此時, L1x = D12/2 + (r1-r2)/(2n-2), L2x = D12 - L1x
更新D:
Dkx = (D1k + D2k - D12)/2; k為不是1、2的其他節點
?
還有一種rapidNJ, 復雜度在o(N**2 * logn)
總結
以上是生活随笔為你收集整理的additive tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: simple k means
- 下一篇: a singleton implemen