京公网安备 11010802034615号
经营许可证编号:京B2-20210330
等级聚类法(Hierarchical Clustering),中文也叫系统聚类法、层次聚类法,是聚类分析里最经典的一类方法。它的思路和 K-Means 完全不同:
这个特性让等级聚类有两个独特的优势:
代价是计算量大:n 个样本要算 n(n-1)/2 个距离对,还要做 n-1 轮合并。所以等级聚类适合小样本(几十到几百个),大样本通常还是用 K-Means。
合并"最相近的两类"时,"相近"怎么定义,决定了不同的方法:
| 方法 | 类间距离定义 | 特点 | 倾向 |
|---|---|---|---|
| 最短距离法(单链接) | 两类中最近两个样本的距离 | 容易产生"链状"长条类 | 能识别非球形、长条形类 |
| 最长距离法(完全链接) | 两类中最远两个样本的距离 | 类更紧凑 | 偏好球形、大小相近的类 |
| 组平均法(平均链接) | 两类所有样本对距离的平均 | 折中,较稳健 | 通用场景最常用 |
| 重心法 | 两类重心(均值)之间的距离 | 计算简单 | 但可能出现"逆转"(合并后距离变小) |
| 离差平方和法(Ward) | 合并后类内离差平方和的增加量 | 类内方差最小化 | 商业分析最常用,类较均匀 |
Excel 里做等级聚类,绝大多数的实操教学用最短距离法或组平均法,因为公式最容易写。下面以最短距离法为主线,同时给出组平均法的改造方式。
把样本按行排列,指标按列排列:
| 样本 | 指标1 | 指标2 | 指标3 |
|---|---|---|---|
| A | 2 | 3 | 5 |
| B | 3 | 4 | 6 |
| C | 8 | 7 | 9 |
| D | 9 | 8 | 10 |
| E | 2 | 4 | 4 |
关键前提:必须标准化。 如果指标量纲不同(一个用元、一个用百分比),距离计算会被大数值指标完全主导。用 Z-score 处理:
在空白列写公式:
=(B2-AVERAGE($B$2:$B$6))/STDEV.S($B$2:$B$6)
每列都做一遍,得到标准化后的数据区域,后续所有距离都基于标准化的数据算。
等级聚类最常用欧氏距离:
在 Excel 里用 SUMPRODUCT 一步算完,先生成"距离矩阵"(对称矩阵,n×n)。
假设标准化后的数据在 B2:D6:
=SQRT(SUMPRODUCT((B2:D2-B3:D3)^2))
更通用、可直接下拉填充的写法(用 $ 锁定引用):
=SQRT(SUMPRODUCT((INDEX($B$2:$D$6,ROW()-1,0)-INDEX($B$2:$D$6,COLUMN()-1,0))^2))
说明:
INDEX($B$2:$D$6, 行号, 0) 返回整行(一个样本的所有指标)ROW() / COLUMN() 让公式横向纵向拖动时自动指向对应的样本小数据量也可以手写简单公式。5 个样本的距离矩阵长这样:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| A | 0 | 1.73 | 7.21 | 8.66 | 1.41 |
| B | 1.73 | 0 | 5.92 | 7.35 | 1.73 |
| C | 7.21 | 5.92 | 0 | 1.73 | 7.21 |
| D | 8.66 | 7.35 | 1.73 | 0 | 8.31 |
| E | 1.41 | 1.73 | 7.21 | 8.31 | 0 |
矩阵是对称的,算一半就行(上三角)。
在距离矩阵上(排除对角线 0 值),找最小的非零值:
=MIN(IF(range>0, range))
这个公式是数组公式,输入后要按 Ctrl+Shift+Enter(Office 365 直接回车即可)。
或者更简单的做法:用 SMALL 函数取第二小的值(因为第一小是 0):
=SMALL(区域, 2)
拿到最小值后,用 MATCH 定位它在哪一行哪一列:
=MATCH(最小值, 某行, 0)
上表里最小距离是 1.41(A 与 E),第一轮把 A、E 合并成新类 (A,E)。
合并后,样本数从 5 个变成 4 个"类":(A,E)、B、C、D。需要重新计算新类到其他各类的距离。
最短距离法的定义是:新类到某类的距离 = 新类中所有样本到该类所有样本距离的最小值。
在 Excel 里就是:
=MIN(A到B的距离, E到B的距离)
具体到公式,假设 (A,E) 这一新类占据原来 A 的位置:
=SQRT(SUMPRODUCT((原A行-原B行)^2)) → 与 E 到 B 的距离取最小
实际填写时,把新类所在行/列填成:
=MIN(原距离矩阵中A-B, 原距离矩阵中E-B)
这样新矩阵变成 4×4,然后重复第 3 步:再找最小、再合并、再更新。
如果用组平均法,只需要把 MIN 换成 AVERAGE:
=AVERAGE(原A-B, 原E-B)
如果用最长距离法,换成 MAX。这是三种方法在 Excel 里唯一的公式差异,非常方便对比。
重复"找最小 → 合并 → 更新矩阵":
| 轮次 | 最小距离 | 合并结果 | 剩余类数 |
|---|---|---|---|
| 1 | 1.41 | (A,E) | 4 |
| 2 | 1.73 | (C,D) | 3 |
| 3 | 1.73 | (A,E,B) | 2 |
| 4 | 5.92 | 全部合并 | 1 |
每轮都要记录合并时的距离值,这个值就是谱系图里的"合并高度"。
Excel 没有内置的树状图,但可以用堆积条形图手工构造,或者用散点图 + 误差线做"锤子图"(更规整)。
最直观的简化做法是用簇状条形图的变通:
实务上更推荐的做法:Excel 算完距离矩阵和合并顺序,把结果贴到 Python / R / 在线绘图工具里画谱系图。Excel 里画树状图的手工成本远高于把数据导出去画。
如果用 Python:
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
Z = linkage(scaled_data, method='single')
dendrogram(Z, labels=['A','B','C','D','E'])
plt.show()
method 参数可以填 single(最短距离)、complete(最长距离)、average(组平均)、ward(离差平方和),和 Excel 里换 MIN/MAX/AVERAGE 是一一对应的。
如果你要用组平均法(更稳健、更常用),流程完全一样,只改第 4 步的更新公式:
单链接(最短距离):
=MIN(距离1, 距离2)
完全链接(最长距离):
=MAX(距离1, 距离2)
平均链接(组平均):
=AVERAGE(距离1, 距离2)
当新类包含多个样本时(比如 (A,E,B)),组平均要按样本对数加权:
Excel 里就是把所有跨类样本对的距离取平均:
=AVERAGE(原矩阵中所有 (U中样本, V中样本) 的距离)
样本量不大时可以直接框选区域做 AVERAGE;样本多了这个公式会很笨重,这时建议转用 Python。
Ward 法在 Excel 里很难手写(需要算类内离差平方和),实操上要么放弃,要么借助数据分析插件。
聚类完成后,怎么决定分几类?三种方法:
谱系图上,如果某一步的合并高度突然变大(比如前几步都是 1.7,突然跳到 5.9),说明这一步合并的两类差异已经很大,在这一步之前切开就是合理分类。
上例里:1.41 → 1.73 → 1.73 → 5.92,最后一步跳变明显,说明应该切成两类:{A, E, B} 和 {C, D}。
统计上的"最佳切点"未必业务上可用。分 2 类是图上合理,但业务上可能需要 3 类(比如分出高中低三档客户),那就往上切。
分出来的类太不均衡(一类 1 个样本、另一类 99 个),说明切点不合适,要调整。
假设有 30 个客户,指标是:年消费额、购买频次、最近购买间隔、客单价。标准化后用最短距离法聚类,得到树形结构:
切在倒数第二层,得到两类:高价值活客 vs 低价值客户。如果想更细,往上切一层,高价值里还能分出"高频低额"和"低频高额"两种不同策略人群。
这就是等级聚类在业务上的典型用法:先看结构,再按运营需要切分。
必须说清楚,Excel 不是做等级聚类的理想工具:
距离矩阵是 n×n,30 个样本就是 900 个格子,还要做 29 轮更新。50 个样本以上,公式维护成本就难以承受。
每轮更新矩阵都要手工框选区域写 MIN/AVERAGE,一旦引用错行,结果全歪,而且很难发现。
Excel 没有原生树状图,只能手工拼或导出到其他工具。
SUMPRODUCT 在矩阵上反复重算,几百个格子就会卡。
结论:Excel 适合教学演示、小样本(<20)、理解算法原理;真实业务分析建议直接在 Python(scipy.cluster.hierarchy)或 SPSS("分析 → 分类 → 系统聚类")里做。
量纲不同时,距离完全被大数值指标主导,聚类结果毫无意义。这是最高频的错误。
把所有能拿到的指标都放进去,会引入噪声和冗余(高度相关的指标等于重复计权)。应先做相关性检查,剔除冗余变量。
等级聚类的距离计算默认针对连续变量。如果有性别、地区这类分类变量,要么转成虚拟变量并慎用欧氏距离,要么改用专门的距离度量(如 Gower 距离)。
换一种链接方法(单链接 → 组平均),结果可能完全不同。聚类结果不是"客观真理",是方法 + 数据共同作用的产物,报告里要写明用了哪种方法。
聚类是无监督的探索工具,产出的是"数据里存在这样的分组",不是"这些样本确定属于这一类"。真要用于业务决策,还需要后续验证。
Excel 做等级聚类,流程可以浓缩成五步:
SUMPRODUCT 一步算出)MIN / SMALL + MATCH)MIN、完全链接 MAX、组平均 AVERAGE)这套流程的价值不在"用 Excel 算出结果",而在于亲手走一遍距离矩阵的每轮更新,能真正理解"类间距离"是怎么定义、怎么变的。理解了这一点,再看 Python 里一行 linkage(data, method='average') 就不会是黑箱。
真要用于业务分析,把 Excel 当"理解工具",把 Python / SPSS 当"生产工具",是最合理的分工。

一、回归分析到底在解决什么问题 很多人学回归分析,是从公式开始的:最小二乘法、残差平方和、R²、t 检验。公式记住了,但一到 ...
2026-11-10一、等级聚类法是什么 等级聚类法(Hierarchical Clustering),中文也叫系统聚类法、层次聚类法,是聚类分析里最经典的一类方法 ...
2026-11-10考试范围 PART 1 大数据基础理论 占比(8% ) a. 大数据分析基础(1%) b. Python 基础(5%) c. Linux & Ubuntu 操作系统基 ...
2026-11-10一、业务背景 在后台列表、管理系统、报表页面的分页需求里,前端通常需要两份数据:当前页的分页记录、符合筛选条件的数据总条 ...
2026-11-09一、需求看起来简单,实际坑不少 "把文本里所有中括号 [] 中间的内容提取出来"——这是文本清洗里最常见的需求之一。日志里的 [I ...
2026-11-09大数据分析师证书考什么 考试范围 PART 1 大数据基础理论 占比(8% ) a. 大数据分析基础(1%) b. Python 基础(5%) c. Li ...
2026-11-09CDA数据分析师 出品 作者:李诗怡 一、数据处理概述 定义: 在正式开展数据分析之前,对原始采集的数据进行整理、修正、加工和精 ...
2026-11-06一、为什么数据要先标准化 拿到一份数据,各列的量纲往往完全不同:年龄单位是"岁"(约 20~60),收入单位是"元"(几千到几万) ...
2026-11-06一、为什么 Python 成了统计分析的主流工具 十年前做统计分析,主流选择是 SPSS、SAS、Stata。现在越来越多的研究者、分析师转向 ...
2026-11-06核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-11-06核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-11-06“大学生必备证书有哪些”最容易被答成一张越长越好的清单。但校招筛选的真实逻辑是:证书要对应你投的岗位任务,并且在校期间确 ...
2026-11-05大学期间能报的证书,先别急着看“含金量榜单”。更实用的第一步是问:我现在这个身份、这个学历,符合报考条件吗? 很多证书宣 ...
2026-11-05大学期间能考的证书很多,但真正需要先回答的是两个问题:当前有没有报考资格,以及这张证书对应什么岗位任务。 前者决定你能不 ...
2026-11-05先把结论说清楚:真正“只有在校大学生能考、毕业就彻底没资格”的证书数量不多,主要集中在语言类考试的部分专项、面向高校学生 ...
2026-11-05上班族问“考什么证书有用”,真正要解决的不是找一张“最值钱”的证,而是判断哪张证能嵌进你现有的岗位任务。同样一张证书,做 ...
2026-11-05职称证书不是统一的考试项目。同样“考职称”,经济、会计、统计、审计、软考走全国统一考试,工程、教师、卫生等系列多数走评审 ...
2026-11-0533岁选证书,最怕两件事:一是被“适合女生”的清单带着走,考完发现岗位用不上;二是投入大半年,报名时才发现学历、专业或工作 ...
2026-11-05“女生容易考的证书”这个问题,真正难的不是找一份名单,而是判断“容易”到底指什么。报名条件宽松、考试通过率高、拿证后能找 ...
2026-11-05“女生适合考什么证书”这类搜索,背后往往是同一个困惑:网上榜单太多,口径却说不清楚。有人把培训证书和职业资格混在一起排, ...
2026-11-05