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

【第二章:机器学习与神经网络概述】01.聚类算法理论与实践-(2)层次聚类算法(Hierarchical Clustering)

第二章: 机器学习与神经网络概述

第一部分:聚类算法理论与实践

第二节:层次聚类算法

内容:聚合方法、切分方法、相似度计算


层次聚类是一种无需预先指定类别数的聚类方法,它通过构建嵌套的聚类结构(层次树)来揭示数据的多层次结构。可分为:

  • 聚合型(Agglomerative)

  • 切分型(Divisive)

【漫话机器学习系列】003.Agglomerative聚类_agglomerativeclustering-CSDN博客


一、基本概念

层次聚类的结果通常表示为一棵树状图(Dendrogram),每个叶节点表示一个样本,分支表示聚类过程。


二、两种聚类方式
1. 聚合型(自底向上)

每个样本初始为一个独立簇,迭代将最相似的两个簇合并,直到只剩一个簇或达到指定阈值。

2. 切分型(自顶向下)

从整体样本开始,每次将某个簇拆分为两个,直到满足终止条件。较少使用,计算复杂度高。


三、簇间相似度的计算方法(Linkage)

聚合型层次聚类的核心在于簇间距离(相似度)计算方式

方法描述特点
单链接法(Single Linkage)两簇中距离最近的两个样本之间的距离易形成链状结构(“链现象”)
完全链接法(Complete Linkage)两簇中距离最远的两个样本之间的距离结果紧凑,不易受离群点影响
平均链接法(Average Linkage)两簇中所有样本两两之间距离的平均值折中方案
重心法(Centroid Linkage)使用簇中所有样本的质心间距离可用于欧氏空间
Ward法合并后平方误差最小化(最小化方差增加)通常效果较好,但要求欧式距离空间

四、常用相似度度量方式
度量方式公式说明适用场景
欧氏距离d(x, y) = \sqrt{ \sum_{i=1}^{n} (x_i - y_i)^2 }连续型数值数据
曼哈顿距离d(x, y) = \sum_{i=1}^{n} |x_i - y_i|x₁ − y₁
余弦相似度\text{sim}(x, y) = \frac{x \cdot y}{\|x\| \cdot \|y\|} = \frac{ \sum_{i=1}^{n} x_i y_i }{ \sqrt{ \sum x_i^2 } \cdot \sqrt{ \sum y_i^2 } }文本向量、用户行为
杰卡德相似度交集 / 并集二元/集合型数据
汉明距离不同位数的个数分类变量(编码)

五、层次聚类过程示意(以聚合为例)
  1. 初始化:每个样本为一个簇。

  2. 计算所有簇间的距离矩阵。

  3. 找到最近的两个簇进行合并。

  4. 更新距离矩阵。

  5. 重复步骤2~4,直到达到停止条件(如簇数、距离阈值等)。

  6. 通过树状图截取合适层级确定簇划分。


六、Python示例(使用 Scipy)
from scipy.cluster.hierarchy import dendrogram, linkage
from matplotlib import pyplot as plt
import numpy as np# 示例数据
X = np.array([[1, 2], [2, 1], [5, 6], [6, 5]])# 层次聚类
Z = linkage(X, method='ward')  # linkage 方法可以是 'single', 'complete', 'average', 'ward'# 绘制树状图
plt.figure(figsize=(8, 4))
dendrogram(Z)
plt.title("Dendrogram - Hierarchical Clustering")
plt.xlabel("Sample index")
plt.ylabel("Distance")
plt.show()


七、优缺点总结
优点缺点
不需要预设K值对噪声与异常值敏感
提供多层次结构一旦合并或切分,无法回溯
可用于非球状簇的识别大规模数据计算成本高

总结
  • 层次聚类构建数据的嵌套结构图谱,常用于基因分析、市场细分等领域。

  • 聚合型算法在实践中更常见,可配合树状图裁剪层级确定最终分簇数。

  • linkage策略和距离度量方式影响最终聚类结果,应结合具体任务选择。

相关文章:

  • 【对比】DeepAR 和 N-Beats
  • 【unitrix】 3.0 基本结构体(types.rs)
  • python 解码 jwt
  • javaweb -Ajax
  • LVS—DR模式
  • 最新FVCOM 潮流、波浪、泥沙、水质、温盐、染色剂、粒子示踪、嵌套、背景流、自动化全流程
  • 在线教育平台敏捷开发项目
  • CppCon 2017 学习:C++ in Academia
  • ModbusTcp使用
  • Qt事件处理机制
  • Transformer推理拓扑关系
  • 2025年06月18日Github流行趋势
  • Jenkins审核插件实战:实现流水线审批控制的最佳实践
  • 经典风格的免费wordpress模板
  • 网页后端开发(基础3--Springboot框架)
  • Github的使用
  • 自力更生式养老VS三大新型养老:在时代裂变中重构银发生存法则
  • 【网工】华为配置专题进阶篇②
  • MySQL 8.0 OCP 题库完整版
  • UVa1408/LA4018 Flight Control
  • 广东手机网站制作公司/想做百度推广找谁
  • 创建网站数据库/企业危机公关
  • 网站右下角浮动效果如何做/求网址
  • 网站建设排行公司/沈阳seo搜索引擎
  • 什么网站做兼职最好/太原seo团队
  • 网站建设道冲/网上永久视频会员是真的吗