additive tree

来源:互联网 发布:衬衣 网络品牌排行榜 编辑:程序博客网 时间:2024/05/21 15:02

衡量相似性通常有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)

原创粉丝点击