【机器学习基础】机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)

article/2025/7/14 2:38:26

在这里插入图片描述

机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)

        • 一、算法逻辑
        • 二、算法原理与数学推导
          • 1. 距离度量
          • 2. 簇间距离计算(连接标准)
          • 3. 算法伪代码(凝聚式)
        • 三、模型评估
          • 1. 内部评估指标
          • 2. 外部评估指标(已知真实标签)
          • 3. 超参数选择
        • 四、应用案例
          • 1. 生物信息学
          • 2. 文档主题分层
          • 3. 图像分割
          • 4. 社交网络分析
        • 五、面试题及答案
          • 常见问题
        • 六、相关论文
        • 七、优缺点对比
      • 总结

一、算法逻辑

层次聚类(Hierarchical Clustering)通过构建树状结构(树状图/Dendrogram)揭示数据内在的层次关系,分为两类:

  1. 凝聚式(Agglomerative)
    • 自底向上:每个样本初始为一个簇 → 迭代合并最近簇 → 最终形成单一簇
    • 流程
      计算距离矩阵 → 合并最近簇 → 更新距离矩阵 → 重复至终止
      
  2. 分裂式(Divisive)
    • 自顶向下:所有样本初始为一个簇 → 迭代分裂最异质簇 → 直至每个样本一簇
    • 计算复杂度高,较少使用

核心特点

  • 无需预设聚类数
  • 树状图可视化层次关系
  • 合并/分裂过程不可逆

在这里插入图片描述

二、算法原理与数学推导
1. 距离度量

设样本 X = { x 1 , x 2 , . . . , x n } X = \{x_1, x_2, ..., x_n\} X={x1,x2,...,xn}, x i ∈ R d x_i \in \mathbb{R}^d xiRd
常用距离:

  • 欧氏距离: d ( x i , x j ) = ∑ k = 1 d ( x i k − x j k ) 2 d(x_i, x_j) = \sqrt{\sum_{k=1}^d (x_{ik} - x_{jk})^2} d(xi,xj)=k=1d(xikxjk)2
  • 曼哈顿距离: d ( x i , x j ) = ∑ k = 1 d ∣ x i k − x j k ∣ d(x_i, x_j) = \sum_{k=1}^d |x_{ik} - x_{jk}| d(xi,xj)=k=1dxikxjk
2. 簇间距离计算(连接标准)
类型公式特点
单连接 d min ( C i , C j ) = min ⁡ a ∈ C i , b ∈ C j d ( a , b ) d_{\text{min}}(C_i, C_j) = \min_{a \in C_i, b \in C_j} d(a,b) dmin(Ci,Cj)=aCi,bCjmind(a,b)易形成链式结构
全连接 d max ( C i , C j ) = max ⁡ a ∈ C i , b ∈ C j d ( a , b ) d_{\text{max}}(C_i, C_j) = \max_{a \in C_i, b \in C_j} d(a,b) dmax(Ci,Cj)=aCi,bCjmaxd(a,b)对噪声敏感
质心法 d cent ( C i , C j ) = d ( μ i , μ j ) d_{\text{cent}}(C_i, C_j) = d(\mu_i, \mu_j) dcent(Ci,Cj)=d(μi,μj)可能导致逆反(Inversion)

其中 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i = \frac{1}{|C_i|}\sum_{x \in C_i} x μi=Ci1xCix 为簇质心, Δ SSE \Delta \text{SSE} ΔSSE 为合并后的簇内平方和增量。

3. 算法伪代码(凝聚式)
输入: 数据集 X, 连接标准  
输出: 树状图  
1. 初始化 n 个簇,每个簇包含一个样本  
2. 计算所有簇对的距离矩阵 D  
3. for k = n to 1:  
4.   找到 D 中最小距离的簇对 (C_i, C_j)  
5.   合并 C_i 和 C_j 为新簇 C_{new}  
6.   更新距离矩阵 D(移除 C_i, C_j,添加 C_{new}7.   记录合并高度(距离)  
8. 生成树状图  
三、模型评估
1. 内部评估指标
  • 轮廓系数(Silhouette Coefficient)
    s ( i ) = b ( i ) − a ( i ) max ⁡ { a ( i ) , b ( i ) } s(i) = \frac{b(i) - a(i)}{\max\{a(i), b(i)\}} s(i)=max{a(i),b(i)}b(i)a(i)
    a ( i ) a(i) a(i):样本 i i i 到同簇其他点的平均距离, b ( i ) b(i) b(i):到最近其他簇的平均距离。 s ( i ) ∈ [ − 1 , 1 ] s(i) \in [-1,1] s(i)[1,1],越大越好。
  • 共表型相关(Cophenetic Correlation)
    衡量树状图距离与原始距离的一致性(值接近1表示层次结构保留良好)
2. 外部评估指标(已知真实标签)
  • 调整兰德指数(Adjusted Rand Index, ARI)
  • Fowlkes-Mallows Index(FMI)
3. 超参数选择
  • 切割高度选择:通过树状图的"最长无交叉垂直边"确定聚类数
  • 连接标准选择
    • 单连接:适合非凸形状
    • Ward法:适合凸簇且噪声少
四、应用案例
1. 生物信息学
  • 基因表达聚类:对RNA-seq数据聚类,识别功能相似的基因模块
  • 工具:GenePattern、Cluster 3.0
2. 文档主题分层
  • 步骤
    1. 文档→TF-IDF向量
    2. 余弦距离 + 平均连接
    3. 切割树状图得到主题层级(如:科技→AI→CV/NLP)
3. 图像分割
  • 流程
    像素→颜色+坐标特征 → Ward法聚类 → 合并相似区域
  • 优势:保留空间连续性
4. 社交网络分析
  • 用户行为数据聚类 → 发现社区层级结构(如:核心用户群→子兴趣组)
五、面试题及答案
常见问题
  1. Q: 层次聚类与K-means的本质区别?
    A:

    • 层次聚类生成树状结构,K-means生成平面划分
    • 层次聚类无需预设K,K-means需指定聚类数
    • 层次聚类复杂度 O ( n 3 ) O(n^3) O(n3),K-means为 O ( n k ) O(nk) O(nk)
  2. Q: Ward法的目标函数是什么?
    A: 最小化合并后的簇内平方和增量:
    Δ SSE = ∣ C i ∣ ∣ C j ∣ ∣ C i ∣ + ∣ C j ∣ ∥ μ i − μ j ∥ 2 \Delta \text{SSE} = \frac{|C_i||C_j|}{|C_i|+|C_j|} \|\mu_i - \mu_j\|^2 ΔSSE=Ci+CjCi∣∣Cjμiμj2

  3. Q: 何时选择全连接而非单连接?
    A: 当需要紧凑球形簇且数据噪声较少时;单连接易受噪声影响形成链式结构。

  4. Q: 如何处理大规模数据?
    A:

    • 使用优先队列优化到 O ( n 2 log ⁡ n ) O(n^2 \log n) O(n2logn)
    • 采样或Mini-Batch
    • 切换为BIRCH(平衡迭代规约聚类)算法
六、相关论文
  1. 奠基性论文

    • Ward, J. H. (1963). Hierarchical Grouping to Optimize an Objective Function
      贡献:提出Ward最小方差法
    • Johnson, S. C. (1967). Hierarchical Clustering Schemes
      贡献:系统化连接标准
  2. 高效优化

    • Murtagh, F. (1983). A Survey of Recent Advances in Hierarchical Clustering Algorithms
      贡献:提出 O ( n 2 ) O(n^2) O(n2) 单连接算法
  3. 生物学应用

    • Eisen, M. B., et al. (1998). Cluster Analysis of Gene Expression Data
      工具:开发TreeView软件
七、优缺点对比
优点缺点
1. 可视化强(树状图展示层次)1. 计算复杂度高(凝聚式 O ( n 3 ) O(n^3) O(n3)
2. 无需预设聚类数2. 合并/分裂后不可逆
3. 灵活选择距离/连接标准3. 对噪声和离群点敏感(尤其全连接)
4. 适合层次结构数据(如生物分类学)4. 大样本内存消耗大

总结

  • 核心价值:揭示数据内在层次关系(如生物进化树、文档主题树)
  • 工业选择:中小规模数据用层次聚类(<10k样本),大规模用BIRCH或HDBSCAN
  • 关键决策:距离度量 + 连接标准(Ward法最常用)
  • 趋势:与深度学习结合(如深度层次聚类)

http://www.hkcw.cn/article/mZOojgDuvL.shtml

相关文章

设计模式——迭代器设计模式(行为型)

摘要 本文详细介绍了迭代器设计模式&#xff0c;这是一种行为型设计模式&#xff0c;用于顺序访问集合对象中的元素&#xff0c;同时隐藏集合的内部结构。文章首先定义了迭代器设计模式并阐述了其核心角色&#xff0c;包括迭代器接口、具体迭代器、容器接口和具体容器。接着&a…

【文献阅读】Learning Transferable Visual Models From Natural Language Supervision

摘要 最先进的计算机视觉系统经过训练&#xff0c;可预测一组固定的预先确定的对象类别。这种受限的监督形式限制了它们的通用性和可用性&#xff0c;因为指定任何其他视觉概念都需要额外的标记数据。 直接从关于图像的原始文本中学习是一种很有前途的替代方法&#xff0c;它…

字符函数和字符串函数

目录 1.字符分类函数 2.字符转换函数 3.strlen函数的使用和模拟实现 4.strcpy函数的使用和模拟实现 5.strcat函数的使用和模拟实现 6.strcmp函数的使用和模拟实现 7.strcnpy函数的使用和模拟实现 8.strcnat函数的使用和模拟实现 9.strncmp函数的使用 10.strstr的函数使…

苹果电脑深度清理,让老旧Mac重焕新生

在日常使用苹果电脑的过程中&#xff0c;随着时间推移&#xff0c;系统内会积累大量冗余数据&#xff0c;导致电脑运行速度变慢、磁盘空间紧张。想要让设备恢复流畅&#xff0c;苹果电脑深度清理必不可少。那么&#xff0c;如何进行苹果电脑深度清理呢&#xff1f;接下来为你详…

android binder(1)基本原理

一、IPC 进程间通信&#xff08;IPC&#xff0c;Inter-Process Communication&#xff09;机制&#xff0c;用于解决不同进程间的数据交互问题。 不同进程之间用户地址空间的变量和函数是不能相互访问的&#xff0c;但是不同进程的内核地址空间是相同和共享的&#xff0c;我们可…

2025年ESWA SCI1区TOP,改进成吉思汗鲨鱼算法MGKSO+肝癌疾病预测,深度解析+性能实测

1.摘要 本文针对肝癌&#xff08;HCC&#xff09;早期诊断难题&#xff0c;提出了一种基于改进成吉思汗鲨鱼优化算法&#xff08;MGKSO&#xff09;的计算机辅助诊断系统。由于HCC在早期症状不明显且涉及高维复杂数据&#xff0c;传统机器学习方法易受噪声和冗余特征干扰。为提…

性能测试实例(http和ldap协议压测)

一、某授权服务器生成授权码效率验证&#xff08;http协议&#xff09; 测试背景 在存量数据23万条的情况下&#xff0c;生成一条授权数据&#xff0c;需要10秒左右&#xff0c;用户反应数据生成效率太差&#xff0c;需要优化。初步判断是由于在授权数据生成时&#xff0c;有查…

解锁设计师创意魔法:Onlook赋能你的Web创作

在数字时代的今天&#xff0c;设计和开发的界限正在逐步模糊。无论是经验丰富的程序员&#xff0c;还是初出茅庐的设计师&#xff0c;能在统一的环境中高效实现创意是任何设计工具的理想。而Onlook&#xff0c;不仅是一个开源的视觉编码编辑器&#xff0c;更是一座连接设计与开…

智慧零工平台前端开发实战:从uni-app到跨平台应用

智慧零工平台前端开发实战:从uni-app到跨平台应用 本文将详细介绍我如何使用uni-app框架开发一个支持微信小程序和H5的零工平台前端应用,包含技术选型、架构设计、核心功能实现及部署经验。 前言 在当今移动互联网时代,跨平台开发已成为提高开发效率的重要手段。本次我选择…

用go从零构建写一个RPC(4)--gonet网络框架重构+聚集发包

在追求高性能的分布式系统中&#xff0c;RPC 框架的底层网络能力和数据传输效率起着决定性作用。经过几轮迭代优化&#xff0c;我完成了第四版本的 RPC 框架。相比以往版本&#xff0c;这一版本的最大亮点在于 重写了底层网络框架 和 实现了发送端的数据聚集机制&#xff0c;这…

云服务器突发宕机或无响应怎么办

当云服务器突发宕机或无响应时&#xff0c;需快速定位问题并恢复服务。以下是分步骤的解决方案&#xff1a; 1. 初步确认问题 检查网络连接 本地网络是否正常&#xff1f;尝试 ping 其他网站 排除本地问题。 使用 ping <服务器IP> 或 traceroute <IP> 测试网络连通…

掌握HttpClient技术:从基础到实战(Apache)

目录 前言 一、Apache HttpClient简介 二、HttpClient基础使用 1. 添加依赖 2. 创建HttpClient实例 3. 发送GET请求 4. 发送POST请求 三、HttpClient高级配置与实战案例 1. 连接池优化 2. 超时与重试配置 3. 文件上传&#xff08;Multipart&#xff09; 总结 前言 …

EXCEL--累加,获取大于某个值的第一个数

一、函数 LET(data,A1:A5,cumSum,SCAN(0,data,LAMBDA(a,b,ab)),idx,MATCH(TRUE,cumSum>C1,0),INDEX(data,idx)) 二、函数拆解 1、LET函数&#xff1a;LET(name1, value1, [name2, value2, ...], calculation) name1, name2...&#xff1a;自定义的变量名&#xff08;需以字…

D. Gellyfish and Camellia Japonica【Codeforces Round 1028 (Div. 2)】

D. Gellyfish and Camellia Japonica 思路 贪心构造&#xff08;其实是思维题&#xff09; 先找必要性&#xff0c;再验证充分性&#xff1a; 倒着求出每个位置的下界作为这个位置的值&#xff0c;再正着验证构造出的这个数列是否合法。 代码非常短&#xff0c;这个题如果当时…

GODOT引擎学习日志

最近在学习使用GODOT引擎&#xff0c;发现这个东西很好很强大。此为背景。 刚开始学习&#xff0c;在使用camera3D的时候&#xff0c;发现使用鼠标滚轮进行视角缩放的时候&#xff0c;网上有些内容不全&#xff0c;于是找了一下。其实很简单&#xff1a; Camera3D有个属性是siz…

普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)

&#x1f3e0;个人主页&#xff1a;尘觉主页 文章目录 普通二叉树 —— 最近公共祖先问题解析&#xff08;Leetcode 236&#xff09;&#x1f9e0; 问题理解普通二叉树与 BST 的区别&#xff1a; &#x1f4a1; 解题思路关键思想&#xff1a;&#x1f4cc; 举个例子&#xff1a…

Dify 部署问题处理

Dify介绍 Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务&#xff08;Backend as Service&#xff09;和 LLMOps 的理念&#xff0c;使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员&#xff0c;也能参与到 AI 应用的定义和数据运营过程…

《操作系统真相还原》——中断

可以毫不夸张的说&#xff0c;操作系统离不开中断 此时我们将中断处理程序放在了汇编文件中了&#xff0c;很显然我们不能很方便的编写中断处理程序&#xff0c;不如在汇编程序里调用c函数。 在这个感觉过可以在c语言中直接内联汇编完成这些。 定时器 将时钟中断的频率提高后…

腾讯位置商业授权沿途搜索服务开发指南

概述 通过本服务检索某段道路附近的POI信息&#xff0c;可配合路线规划&#xff0c;为用户提供沿途服务区、加油站等搜索功能。 注&#xff1a; 1、本服务属于高级付费服务&#xff0c;如需试用请提交商务合作开通服务试用。 2、本接口有大小限制&#xff0c;接口长度不能超…

内容中台的实施基石是什么?

标准化流程体系构建 在企业内容中台建设中&#xff0c;标准化流程体系是确保内容生产、管理和分发效率的核心框架。通过定义元数据规范、内容分类规则及跨部门协作机制&#xff0c;能够实现从内容创建到归档的全链路标准化运作。例如&#xff0c;Baklib作为支持团队协作与权限…