目录
前言
聚类算法中的层次聚类方法是一种已得到广泛使用的经典方法,是通过将数据对象组织成若干组并形成一个相应的树来进行聚类。Birch算法就是一种基于层次聚类的方法,所以我们在本文介绍一下Birch算法
一、Birch算法基本思想
BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies)全称是:利用层次方法的平衡迭代规约和聚类。定义很长,但是其实只要明白它是用一棵树来聚类和规约数据就可以了

先让我们看看CF tree长什么样,如上图所示, BIRCH算法利用了一个树结构来帮助我们快速的聚类,这个数结构类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)。这颗树的每一个节点是由若干个聚类特征(Clustering Feature,简称CF)组成。从左图我们可以看看聚类特征树是什么样子的:每个节点包括叶子节点都有若干个CF,而内部节点的CF有指向孩子节点的指针,所有的叶子节点用一个双向链表链接起来。
二、聚类特征CF和CF 树
1.聚类特征CF
如果某个簇包含N个d维的数据对象{o1,o2,…,oN},则聚类特征定义为一个三元组CF=(N,LS,SS)。其中LS是N个对象的线性和,SS是N个对象的平方和,即:
聚类特征概括了对象簇的信息,在BIRCH算法中做聚类决策所需要的度量值,如簇的质心、半径、直径、簇间质心距离和平均簇间距离等都可以通过聚类特征CF计算出来。
质心计算公式:
半径计算公式:
所以我们可以看到,其实聚类特征是包含了这个簇的很多信息,但是它却不需要全部存储下来,只需要一个简单的三元组就可以囊括了这个簇的所有信息,使得内存占用空间大大减少。
举个例子如图,在CF Tree中的某一个节点的某一个CF中,有下面5个样本(3,4), (2,6), (4,5), (4,7), (3,8)。则它对应的N=5, LS=(3+2+4+4+3,4+6+5+7+8)=(16,30), SS=(3²+2²+4²+4²+3²+4²+6²+5²+7²+8²)=(54+190)=244
2.CF tree
CF有一个很好的性质,就是满足线性关系,也就是CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2)。这个性质从定义也很好理解。如果把这个性质放在CF Tree上,也就是说,在CF Tree中,对于每个父节点中的CF节点,它的(N,LS,SS)三元组的值等于这个CF节点所指向的所有子节点的三元组之和。
从上图中可以看出,根节点的CF1的三元组的值,可以从它指向的6个子节点(CF7 - CF12)的值相加得到。这样我们在更新CF Tree的时候,只需要进行简单的加减操作,可以很高效的进行聚类。


本文详细介绍了Birch算法的工作原理,包括其基本思想、聚类特征CF和CF树的构建,以及算法流程的优化。实验部分探讨了簇数、CF半径阈值和节点CF个数对算法性能的影响,并提供了优化建议。
2491

被折叠的 条评论
为什么被折叠?



