当前位置: 首页 > article >正文

【机器学习】24. 聚类-层次式 Hierarchical Clustering

1. 优势和缺点

优点:

  • 无需提前指定集群的数量
    通过对树状图进行不同层次的切割,可以得到所需数量的簇。
  • 树状图提供了一个有用的可视化-集群过程的可解释的描述
  • 树状图可能揭示一个有意义的分类

缺点:

  • 计算复杂度较大, 限制了其在大规模数据集上的应用,空间复杂度n^2 , 时间复杂度 n^3
  • not incremental 没有增量, 假设所有数据都存在
  • 噪声和离群点会对聚类结果产生较大影响

2. 两种方法

聚合式 agglomerative(bottom-up) and 分裂式divisive(top-down)

3. 三种Link

  • Single link(min)
  • Complete link(max)
  • Average link

4. 聚合式agglomerative(bottom-up) 实现

  • 计算邻近矩阵
  • 将每个数据点都视为一个簇
  • 重复过程:
    • 合并两个最近的簇
    • 更新邻近矩阵
  • 结束条件: 直到只有一个剩余的簇

5. 分裂式divisive(top-down)实现

  • 首先, 将数据点的距离关系表示为一个邻近图, 生成MST
  • 重复过程:
    • 通过切断MST中的最长边来创建新簇
    • 结束条件: 直到所有的点都被分割为单独的簇

在这里插入图片描述


http://www.kler.cn/a/381005.html

相关文章:

  • leetcode 2295.替换数组中的元素
  • 1 软件工程——概述
  • 「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
  • java全栈day20--Web后端实战(Mybatis基础2)
  • python面试篇-多并发详解(多线程,多进程,协成整理)---一篇搞定
  • 读书笔记~管理修炼-缄默效应
  • Android Studio 多工程公用module引用
  • 【专属情侣空间】不懂技术,不懂代码,你也可以拥有专属的情侣空间了
  • 各主流编程语言的常见问题点(不定时更新)
  • FrankenPHP实践
  • spring-boot(更换数据源)
  • clickhouse运维篇(二):多机器手动部署ck集群
  • 一篇文章帮你彻底解决gradle、gradle插件、jdk版本兼容性问题
  • 洗衣小程序/洗鞋小程序 洗衣店系统,洗衣系统源码
  • 面试题:JVM(六)
  • 接口/泛型
  • 界面控件DevExpress WPF中文教程:Data Grid——卡片视图概述
  • 阿里云高并发测试-Redis缓存机制
  • pdf文件预览和导出
  • 鉴源实验室·加密技术在汽车系统中的应用
  • 力扣438——找到字符串中的所有字母异位词
  • stack和queue --->容器适配器
  • Oracle Sql查询和性能优化(持续更新)
  • 掌握 Jest 中的模块模拟:提升单元测试的灵活性与可靠性
  • 【企业微信新版sdk】
  • java.io.FileNotFoundException: Could not locate Hadoop executable: (详细解决方案)