BIRCH
本篇是学习笔记,原著内容链接:https://www.cnblogs.com/pinard/p/6179132.html
- BIRCH算法利用了一个树结构来帮助我们快速的聚类,这个数结构类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)。
- 这颗树的每一个节点是由若干个聚类特征(Clustering Feature,简称CF)组成。从下图我们可以看看聚类特征树是什么样子的:每个节点包括叶子节点都有若干个CF,而内部节点的CF有指向孩子节点的指针,所有的叶子节点用一个双向链表链接起来。
聚类特征CF与聚类特征树CF Tree
- CF是这样定义的:每一个CF是一个三元组,可以用(N,LS,SS)表示。
- N:此CF所包含的样本数
- LS:此CF包含样本各特征的和向量(例如:平面点的坐标,所有点构成的和向量)
- SS:此CF包含样本各特征维度的平方和(例如:平面点有两个空间维度,即x和y,那么SS是Xi和Yi的平方和,对于CF Tree中的某一个节点的某一个CF,有5个样本点:(3,4), (2,6), (4,5), (4,7), (3,8)。根据计算得到的LS=(16,30)和N=5,SS的计算如下:
S S = ∑ i = 1 n ∑ j = 1 d ( x i j ) 2 SS = \sum_{i=1}^{n} \sum_{j=1}^{d} (x_{ij})^2 SS=i=1∑nj=1∑d(xij)2
将每个样本点的各个特征维度的值代入计算:
S S = ( 3 2 + 4 2 ) + ( 2 2 + 6 2 ) + ( 4 2 + 5 2 ) + ( 4 2 + 7 2 ) + ( 3 2 + 8 2 ) SS = (3^2 + 4^2) + (2^2 + 6^2) + (4^2 + 5^2) + (4^2 + 7^2) + (3^2 + 8^2) SS=(32+42)+(22+62)+(42+52)+(42+72)+(32+82)
计算后得到:
S S = ( 9 + 16 ) + ( 4 + 36 ) + ( 16 + 25 ) + ( 16 + 49 ) + ( 9 + 64 ) = 25 + 40 + 41 + 65 + 73 = 244 SS = (9 + 16) + (4 + 36) + (16 + 25) + (16 + 49) + (9 + 64) = 25 + 40 + 41 + 65 + 73 = 244 SS=(9+16)+(4+36)+(16+25)+(16+49)+(9+64)=25+40+41+65+73=244
因此,在这个CF中,样本点的各个特征维度的平方和SS为244。
在BIRCH算法中,当两个CF节点 CF1 和 CF2 合并为一个新的CF节点时,新的CF节点的 N、LS 和 SS 的计算方式如下:
- N n e w = N 1 + N 2 N_{new} = N_1 + N_2 Nnew=N1+N2
- L S n e w = L S 1 + L S 2 LS_{new} = LS_1 + LS_2 LSnew=LS1+LS2
- S S n e w = S S 1 + S S 2 SS_{new} = SS_1 + SS_2 SSnew=SS1+SS2
其中, N n e w N_{new} Nnew 是新的CF节点中的样本数量, L S n e w LS_{new} LSnew 是新的CF节点中的LS值, S S n e w SS_{new} SSnew 是新的CF节点中的SS值。这些计算方式保证了在CF节点合并时,能够正确地更新节点的统计信息。体现了CF树很好的性质——线性关系