birch聚类 java_层次聚类改进算法之BIRCH

BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)是一种增量聚类算法,它通过聚类特征(CF)和聚类特征树(CF Tree)实现高效的数据聚类。算法解决了Agglomerative层次聚类的内存开销问题,仅遍历一次数据,支持流数据处理。BIRCH通过CF的加法定理和CF Tree的结构,实现数据的压缩表示,降低了内存需求。在scikit-learn中,可以通过调整阈值、分支因子等参数使用BIRCH进行聚类。
摘要由CSDN通过智能技术生成

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ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值