美文网首页
第六章 数据聚类算法——基于BIRCH算法

第六章 数据聚类算法——基于BIRCH算法

作者: 文颜 | 来源:发表于2019-10-30 17:24 被阅读0次

    6.4 基于BIRCH算法

    BIRCH算法主要用于处理超大规模的数据集,是一个基于距离的层次聚类,综合了层次凝聚和迭代的重定位方法,首先用自顶向上的层次算法,然后用迭代的重定位来改进结果。

    算法过程:将待分类的数据插入一棵树中,并且原始数据都在叶子结点上。

    主要思想:通过扫描数据库,建立一个初始存放于内存中的聚类特征树,然后对聚类特征树的叶节点加以聚类。

    算法核心:聚类特征和聚类特征树。

    6.4.1 特征聚类

    CF树中的结点都是由CF组成,一个CF是一个三维向量,这个三维向量包含了簇的所有信息。给定N个d维的数据点\left\{ x_{1} ,x_{2},...x_{n} \right\} ,则CF的定义如下:

    CF=(N,LS,SS )

    其中,N为数据点总数,LS为N个点的线性和,SS为N个点的平方和。

    簇的中心:x_{0} =\frac{LS}{N}

    簇直径:D= (\frac{ \sum_{i=1}^N\sum_{j=1}^N (x_{i}- x_{j})^2  }{N(N-1)} )^2

    簇半径:R= (\frac{ \sum_{i=1}^N(x_{i}- x_{0})^2  }{N} )^\frac{1}{2}

    两个簇之间的距离:

    D_{2} = (\frac{ \sum_{i=1}^{N_{1} }   \sum_{j=N_{1} +1}^{N_{1} +{N_{2} }} (x_{i}- x_{j})^2  }{N(N-1)} )^\frac{1}{2}

    迭加性:CF_{1 }+CF_{2}=(N_{1} +N_{2},LS_{1}+LS_{2},SS_{1}+SS_{2})

    6.4.2 聚类特征树

    聚类特征树的构造是不断插入对象的过程。

    三个变量:内部节点平衡因子B(限制非叶子结点的子结点数),叶节点平衡因子L(限制叶子结点的的子簇个数)及簇直径阈值T(限制簇的紧密程度)。

    主要构造过程:

    1、读入第一条数据,创建一个空的Leaf和MinCluster,把第一条数据的ID值放入MinCluster,更新MinCluster的CF值,然后把MinCluster作为Leaf的一个孩子,并更新Leaf的CF值。

    2、将新的数据点封装为一个MinCluster,根据D_{2} 来判断新加入的点于与树的根结点的哪个孩子结点最近,久将该数据点加入哪个子树上。如果加之后MinCluster的直径超过了T,则让新加入的数据点单独作为一个簇。

    3、对插入新结点后孩子数大于B或L的结点进行分裂。分裂规则是选出簇间距离最大的两个孩子,分别作为两个叶子,然后其他的孩子按照就近分配。

    6.4.3 BIRCH算法的优缺点

    优:

    1、该算法只需扫描一遍就可以得到一个好的聚类效果,而且不需要事先设定聚类个数。

    2、聚类通过聚类特征树的形式,一定程度上保存了对数据的压缩。

    3、快速。在合并几个簇时,只需将几个簇的CF值相加即可;在计算两个簇之间的距离时,只需要N,LS,SS三个数据即可。

    缺:

    1、该算法对于不是球形的簇,聚簇的效果不是很好。

    2、对高维数据的聚类的效果不好。

    3、结果依赖数据点的插入顺序。

    相关文章

      网友评论

          本文标题:第六章 数据聚类算法——基于BIRCH算法

          本文链接:https://www.haomeiwen.com/subject/guxavctx.html