BIRCH算法(平衡迭代削减聚类法):聚类特征使用3元组进行一个簇的相关信息,通过构建满足分枝因子和簇直径限制的聚类特征树来求聚类,聚类特征树其实是一个具有两个参数分枝因子和类直径的高度平衡树;分枝因子规定了树的每个节点的子女的最多个数,而类直径体现了对这一类点的距离范围;非叶子节点为它子女的最大特征值;聚类特征树的构建可以是动态过程的,可以随时根据数据对模型进行更新操作。

优缺点:

1) 节约内存,所有的样本都在磁盘上,CF Tree仅仅存了CF节点和对应的指针。

    2 )   聚类速度快,只需要一遍扫描训练集就可以建立CF Tree,CF Tree的增删改都很快。

    3 )   可以识别噪音点,还可以对数据集进行初步分类的预处理。

只适合分布呈凸形或者球形的数据集、需要给定聚类个数和簇之间的相关参数;

节点的CF有限制可能导致,最终的聚类结果与真实值不太一致

BIRCH算法底层是构建一个类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)。这颗树的每一个节点是由若干个聚类特征(Clustering Feature,简称CF)组成。CF是一个三元组(N,LS,SS) N表示在这个CF表示的集合中表示的样本数量,LS是这些所有样本各个特征属性值的和,NS表示各个属性的平方和

假定簇C1中有两个点(1,2,3),(3,2,1),簇C2有三个点(1,1,2),(2,2,1),(2,1,2),簇3由C1和C2构成,则:CF1=(2,(1+3,2+2,3+1),( 1^2+3^2,2^2+2^2,3^2+1^2))=(2,(4,4,4),(10,8,10))

CF2=(3,(1+2+2,1+2+1,2+1+2),(1^2+2^2+2^2,1^2+2^2+1^2,2^2+1^2+2^2 ))=(3,(5,4,5),(9,6,9))

因此得到CF3为:

CF3=(2+3,(4+5,4+4,4+5),(10+9,8+6,10+9))=(5,(9,8,9),(19,14,19))

CF树构造中是不断插入对象(簇)的过程,首先需要定义参数:分支因子B和阈值T,这些分支因子不能单纯理解为数据点,而是一个子簇,B则是定义了非叶节点子女是最大数目,阈值T是限定叶子节点中字簇的最大直径。且CF随B的变大而减小。

识别合适的叶节点:从根节点开始逐层下降,查找最近的孩子节点,直至也节点。

修改叶节点:被修改的叶节点和插入的对象Enf合并后的节点数与B比较,合并后的簇直径与阈值T比较,是否分裂。

修改叶节点的路径:将Enf插入到节点(簇)中,到达叶节点的路径上的每个节点的CF信息需要进行更新。

每分裂后随后便有一个合并步。

BIRCH聚类树的构建实际上就是插入一个样本点,且BIRCH聚类树不依赖k值的给定,但是给定k值最好,不给定k值,最终的CF-TREE的叶子节点数就是簇的数目。BIRCH算法适合大规模数据集,与Mini-Batch K-Means算法相比,BIRCH更加适合类别较多的情况(k值比较大的情况)。但是如果特征维度超过20~30的时候,尽量不要使用birch算法,降维或者其他方法再使用都可以。

BIRCH层次聚类优化算法(平衡迭代规约聚类树相关推荐

  1. 聚类优化算法——基于Kmeans算法

    聚类优化算法--基于Kmeans算法 Kmeans算法 Kmeans算法的基本原理及计算流程见上文--Kmeans算法及简单案例 Kmeans算法的优缺点 优点 - 原理简单(靠近中心点),实现容易 ...

  2. kmeans 算法_kmeans优化算法:二分Kmeans聚类算法

    算法的理解 ​ Bi这里是的意思就是Binary,二进制的意思,所以有时候叫这个算法为二进Kmeans算法.为什么我们需要用BiKmeans呢,就是为了解决初始化k个随机的质心点时其中一个或者多个点由 ...

  3. 机器学习--聚类算法(无监督学习)--K-Menas/BIRCH/CURE/DBSCAN/MDCA算法理论

    目录 一 聚类算法概述 1 聚类的概念 2 聚类算法的评价指标 1)轮廓系数(无需目标属性的评价指标) 二 基于划分的聚类算法(K-Means) 1 K-Means算法 1)算法流程 2)算法的优缺点 ...

  4. 张伟伟-层次1 Mean_shift聚类算法和其他的聚类算法

    pycharm使用的简单教程 层次一 Mean_shift聚类算法和其他的聚类算法 作者介绍 1. 安装包的准备: 2. Mean-shift原理及实现 2.1 Mean-shift原理 2.2 主要 ...

  5. 机器学习(聚类四)——K-Means的优化算法

    K-Means算法是最基本的一种聚类算法,也会有一些问题,前面的博客<机器学习(聚类二)--K-Means>中有介绍,这里就不详细说了.下面介绍一下典型的优化算法: 优化算法 1)K-Me ...

  6. python多维向量聚类_机器学习:Python实现聚类算法(三)之总结

    考虑到学习知识的顺序及效率问题,所以后续的几种聚类方法不再详细讲解原理,也不再写python实现的源代码,只介绍下算法的基本思路,使大家对每种算法有个直观的印象,从而可以更好的理解函数中参数的意义及作 ...

  7. python数据分类聚类案例_Python实现的KMeans聚类算法实例分析

    本文实例讲述了Python实现的KMeans聚类算法.分享给大家供大家参考,具体如下: 菜鸟一枚,编程初学者,最近想使用Python3实现几个简单的机器学习分析方法,记录一下自己的学习过程. 关于KM ...

  8. 教学优化算法的简单介绍

    目录 摘要 背景 算法 学生初始化 教学阶段 学习阶段 流程总结 优缺点 优点 缺点 一些改进 总结 参考文献 摘要 教学优化算法(Teaching-learning-based optimizati ...

  9. 【PSO运输优化】基于MATLAB的PSO运输优化算法的仿真

    1.软件版本 matlab2013b 2.本算法理论知识 问题是,假设我有一个收集轨道,上面有5个采集堆,这5个采集堆分别被看作一个4*20的矩阵(下面只有4*10),每个模块(比如:A31和A32的 ...

最新文章

  1. 计算机视觉——基本知识概念
  2. R语言实现金融数据的时间序列分析及建模
  3. 概率整形技术(PCS)介绍
  4. 图像清晰度的评价及分析
  5. Wireshark数据包分析之数据包信息解读
  6. 湖南科技大学计算机学院宿舍,湖南科技大学计算机科学与工程学院
  7. jQuery系列之目录汇总
  8. python语言中文怎么读-python中文读什么
  9. 创建数据库索引的几种方法
  10. OpenCV—HSV色彩空间基础知识
  11. 【SpringBoot】63、SpringBoot中教你手把手封装自己的starter(xxl-job-spring-boot-starter)
  12. h5分享微信好友朋友圈
  13. SIM7600 4G at指令调试
  14. linux下源代码安装f90,linux下编译fortran linux安装gfortran
  15. word如何设置上标形式_word怎样设置上标
  16. php中文日期转成date类型,php怎么将含中文的日期转为时间戳
  17. 遥感影像处理的几个概念
  18. 小程序能用突发性t5服务器么,突发!微信放大招,开放50个小程序超级入口
  19. UE4项目迁移----纯蓝图项目
  20. Python编程:socket实现文件传输(文件服务器简易版)

热门文章

  1. oracle数据库客户端安装完后连接测试服务端不成功时如何配置?
  2. centos图形化界面安装,中文输入法,mysql安装
  3. 进程间通信的六种常见方式
  4. 广西南宁机器人比赛_南宁举行机器人、创客竞赛,2000多名中小学生赛场大比拼...
  5. Windows 11 预览版镜像提前出世!附下载
  6. confluence的几个高危漏洞复现
  7. Macronix MX60LF8G18AC替换Spansion S34ML08G101参考!
  8. typedef的一些使用总结
  9. 在线Java 动态运行Java源代码
  10. ERR AUTH<password> called without anypassword configured for the default user.Are you sure your conf