BIRCH算法简介
BIRCH算法的全称是Balanced Iterative Reducing and Clustering using Hierarchies,它使用聚类特征来表示一个簇,使用聚类特征树(CF-树)来表示聚类的层次结构,算法思路也是“自底向上”的。
解决了Agglomerative算法不能撤销先前步骤的工作的缺陷
CF-树只存储原始数据的特征信息,并不需要存储原始数据信息,内存开销上更优
BIRCH算法只需要遍历一遍原始数据,而Agglomerative算法在每次迭代都需要遍历一遍数据,所以BIRCH在性能也优于Agglomerative
BIRCH是一种增量聚类方法,针对每一个点的聚类决策都是基于当前已经处理过的数据点,而不是全局的数据点。支持对流数据的聚类,BIRCH一开始并不需要所有的数据
BIRCH算法原理
BIRCH算法中引入了两个概念:聚类特征和聚类特征树,以下分别介绍。
聚类特征(CF)
CF是BIRCH增量聚类算法的核心,CF树中得节点都是由CF组成,一个CF是一个三元组,这个三元组就代表了簇的所有信息。给定N个d维的数据点$\{x_1,x_2,…,x_n\}$,CF定义如下:CF =(N,LS,SS)。其中,N是子类中节点的数目,LS是N个节点的线性和,SS是N个节点的平方和。
CF有个特性,即可以求和,具体说明如下:CF1=(n1,LS1,SS1),CF2=(n2,LS2,SS2),则CF1+CF2=(n1+n2, LS1+LS2, SS1+SS2)。假设簇C1中有三个数据点:(2,3),(4,5),(5,6),则CF1={3,(2+4+5,3+5+6),(2^2+4^2+5^2,3^2+5^2+6^2)}={3,(11,14),(45,70)},同样的,簇C2的CF2={4,(40,42),(100,101)},那么,由簇C1和簇C2合并而来的簇C3的聚类特征CF3计算如下:CF3={3+4,(11+40,14+42),(45+100,70+101)}={7,(51,56),(145,171)}
另外在介绍两个概念:簇的质心和簇的半径。假如一个簇中包含n个数据点:$X_i, i=1,2,3…n$,则质心$X_0$和半径R计算公式如下:
$$X_0=\frac{\sum_{i=1}^{n}X_i}{n}$$
$$R = \sqrt{\frac{\sum_{i=1}^{n}(X_i-X_0)^2}{n}}$$
其中,簇半径表示簇中所有点到簇质心的平均距离。CF中存储的是簇中所有数据点的特性的统计和,所以当我们把一个数据点加入某个簇的时候,那么这个数据点的详细特征,例如属性值,就丢失了,由于这个特征,BIRCH聚类可以在很大程度上对数据集进行压缩。
聚类特征树(CF tree)
CF tree的结构类似于一棵B-树,它有两个参数:内部节点平衡因子B,叶节点平衡因子L,簇半径阈值T。树中每个节点最多包含B个孩子节点,记为$({CF}_i,{CHILD}_i)$,1<=i<=B,${CF}_i$是这个节点中的第i个聚类特征,${CHILD}_i$指向节点的第i个孩子节点,对应于这个节点的第i个聚类特征。例如,一棵高度为3,B为2ÿ