2026/1/10 14:16:35
网站建设
项目流程
没有网站如何做淘宝客,资阳建网站,页面跳转的方式有哪些,北京建设工程有限公司用Excel实现层次聚类法进行聚类分析
在数据分析的学习旅程中#xff0c;很多人第一次接触“无监督学习”时都会被一个简单却深刻的问题吸引#xff1a;如果没有标签#xff0c;我们还能发现数据中的规律吗#xff1f;
答案是肯定的——这正是聚类分析的魅力所在。它不依赖…用Excel实现层次聚类法进行聚类分析在数据分析的学习旅程中很多人第一次接触“无监督学习”时都会被一个简单却深刻的问题吸引如果没有标签我们还能发现数据中的规律吗答案是肯定的——这正是聚类分析的魅力所在。它不依赖先验知识而是通过挖掘数据内部的结构和相似性自动识别出潜在的分组模式。比如在商场运营中如何根据顾客评分将门店划分为不同档次在用户画像构建中怎样从行为数据中提炼出自然形成的群体这些都可以借助聚类来完成。而今天我们要聊的是一种特别适合初学者理解的经典方法层次聚类法Hierarchical Clustering。更特别的是——整个过程你不需要写一行代码只需要打开 Excel就能一步步看到“分类是如何自己长出来的”。聚类 vs 分类别再傻傻分不清很多人刚接触聚类时总会把它和“分类”搞混。其实两者的逻辑完全不同分类像是考试判卷题目有标准答案你要做的只是把新题归到已知类别里聚类更像是考古发掘你面对一堆未知文物得靠它们的材质、形状、年代等特征推测哪些可能属于同一个文明。换句话说聚类的核心在于两个关键词1.没有先验知识2.基于亲疏程度那么“亲疏”怎么量化最直接的方式就是计算距离。如何衡量“谁跟谁近”在多维空间中两个样本之间的“远近”可以用多种方式定义。以下是几种常见距离度量欧式距离Euclidean Distance两点之间的直线距离也是最直观的一种。$$d(A,B) \sqrt{\sum_{i1}^{k}(x_i - y_i)^2}$$在 Excel 中可以用SQRT(SUMXMY2())实现或者手动平方求和再开根。平方欧式距离去掉开方步骤简化计算$$d^2(A,B) \sum_{i1}^{k}(x_i - y_i)^2$$适用于仅需比较相对大小的场景。块距离Manhattan Distance各维度差值绝对值之和像城市中沿着街道走的距离$$d(A,B) \sum_{i1}^{k}|x_i - y_i|$$切比雪夫距离Chebyshev Distance取各维度最大差异$$d(A,B) \max(|x_1 - y_1|, …, |x_k - y_k|)$$强调“最短板”的影响。闵可夫斯基距离Minkowski Distance通用公式涵盖以上所有$$d(A,B) \left( \sum_{i1}^{k}|x_i - y_i|^q \right)^{1/q}$$$ q1 $块距离$ q2 $欧式距离$ q \to \infty $切比雪夫距离此外还有兰氏距离、马氏距离等更复杂的度量适用于特定分布或协方差结构的数据但对初学者来说掌握欧式距离已足够应对大多数情况。动手实战五座商厦的客户评分聚类来看一个具体案例。某调研机构收集了客户对五座商厦A、B、C、D、E在“购物环境”与“服务质量”上的平均评分商厦购物环境服务质量A87B76C54D32E43我们的目标是根据这两项指标使用层次聚类法将这五座商厦分组。第一步构建初始距离矩阵在 Excel 中输入原始数据后建立一个 $5\times5$ 的表格用于计算两两之间的欧式距离。以 A 和 B 为例SQRT((C2-C3)^2 (D2-D3)^2)填充整个区域并利用$锁定行列地址以便复制公式。最终得到如下距离矩阵 $ D_1 $ABCDEA01.414.247.075.83B1.4102.835.664.47C4.242.8302.831.41D7.075.662.8301.41E5.834.471.411.410观察可知最小距离为1.41出现在三对组合中A-B、C-E、D-E。我们可以任选其一作为首次合并对象这里选择先合并 D 和 E。创建新类 CL4 {D, E}类间距离怎么算这才是关键当多个样本合并成一类后问题来了这个“类”和其他类之间该怎么算距离这就是层次聚类中最核心的设计选择。常见的策略有以下几种最短距离法Single Linkage取两类中任意两个样品间的最小距离。优点是能捕捉链状结构比如一条延伸的客户偏好链条缺点是容易出现“拉伸效应”导致本不该连在一起的簇被强行串联。最长距离法Complete Linkage取最大距离倾向于生成紧凑、边界清晰的簇。对异常值敏感但结果通常更均衡。类平均法Average Linkage所有跨类样本对距离的均值平衡性好推荐用于一般场景。Ward法每次合并使类内离差平方和增量最小偏好大小相近的簇效果稳定。重心法Centroid Method基于类的中心点均值计算距离几何意义明确但可能出现逆序现象即后续合并距离反而变小。本文为了便于演示流程采用最短距离法。层次聚类三步走合并 → 更新 → 重复层次聚类的本质是一个迭代过程初始状态每个样品自成一类找出距离最近的两类合并为新类更新距离矩阵回到第2步直到只剩一个大类。我们继续操作。步骤1合并 D 和 E → CL4 {D, E}按照最短距离法原则$$\text{dist}(CL4, X) \min(\text{dist}(D,X), \text{dist}(E,X))$$在 Excel 中新增一行/列分别计算 CL4 与其他类的距离dist(CL4, A) min(7.07, 5.83) 5.83dist(CL4, B) min(5.66, 4.47) 4.47dist(CL4, C) min(2.83, 1.41) 1.41删除 D、E 行列得到新的距离矩阵 $ D_2 $ABCCL4A01.414.245.83B1.4102.834.47C4.242.8301.41CL45.834.471.410当前最小距离仍是1.41出现在 C 与 CL4 之间。于是合并为新类 CL2 {C, D, E}步骤2更新为 $ D_3 $计算 CL2 与 A、B 的距离dist(CL2, A) min(dist(C,A), dist(CL4,A)) min(4.24, 5.83) 4.24dist(CL2, B) min(2.83, 4.47) 2.83得到 $ D_3 $ABCL2A01.414.24B1.4102.83CL24.242.830最小距离出现在 A 与 B 之间1.41合并为 CL3 {A, B}步骤3更新为 $ D_4 $计算 CL3 与 CL2 的距离dist(CL3, CL2) min(dist(A,CL2), dist(B,CL2)) min(4.24, 2.83) 2.83得到 $ D_4 $CL3CL2CL302.83CL22.830最后一步合并 CL3 与 CL2形成最终大类 CL1 {A, B, C, D, E}绘制谱系图Dendrogram让聚类“生长”可视化整个聚类过程就像一棵倒挂的树根在上叶在下每一步合并都对应一次分支的连接。这种图称为谱系图或树状图Dendrogram。虽然 Excel 原生不支持动态绘制树状图Excel 2016 的“树状图”图表类型其实是用于层级比例展示非聚类用途但我们可以通过插入形状或文本方式手动构造。也可以用文本形式模拟A B C D E \ / \ / AB DE | CDE \ / ABCDE或者按层级展示Level 0: A B C D E Level 1: AB C DE Level 2: CDE Level 3: AB ---- CDE每一层代表一次合并纵轴可以标注合并时的距离值帮助判断合理的切割位置。分几类最合适不能只看算法聚类完成后真正的挑战才开始我们应该在哪一层切断这棵树没有唯一正确答案但有几个实用方法可以帮助决策1. 设定距离阈值在谱系图中画一条水平线落在同一连通区域内的归为一类。例如在距离 3.0 处横切- AB 自成一类- CDE 自成一类→ 得到两类G1{A,B}, G2{C,D,E}若在 1.5 处切则可得三类G1{A,B}, G2{C}, G3{D,E}2. 肘部法则Elbow Method观察每次合并带来的距离跳跃。当跳跃突然增大时说明强行合并会导致类内差异剧增——这个“拐点”往往就是最佳划分点。本例中最后一次合并距离为 2.83前一次为 1.41增长明显支持在 CL3 和 CL2 合并前停止即保留两类。3. 结合业务背景解释回到实际场景A 和 B 是高端商场评分最高C 居中D 和 E 是社区型小商场。分成两类符合运营定位也便于制定差异化营销策略。Excel 实操技巧让手工操作更高效尽管这是手工操作但合理组织工作表结构可以让过程清晰可控Sheet名称内容说明原始数据存放初始评分数据距离矩阵_D1初始两两距离D2,D3, …每轮合并后的更新矩阵合并记录记录每次合并的类名、成员、距离谱系图草图使用形状工具绘制树状结构 提示- 使用颜色标记每次合并的类增强可读性- 利用“命名区域”管理类标签避免混淆- 公式中善用$固定引用提高复制效率- 可用“条件格式”高亮每轮最小值快速定位合并对象。Q型聚类 vs R型聚类不只是对“人”分类我们刚才做的是对样品行进行聚类称为Q型聚类比如对商场、客户、设备等实体分组。但聚类还可以反过来对变量列进行称为R型聚类。例如在本例中“购物环境”和“服务质量”如果高度相关可能会被聚为一类说明它们共同反映了一个潜在因子——比如“整体体验满意度”。这在降维、指标体系优化中有重要应用。只需将原始数据转置然后重复上述流程即可实现 R 型聚类。小结为什么还在用 Excel 做聚类你可能会问现在有 Python、R、SPSS为什么还要用 Excel答案很简单对于教学和小型数据分析任务Excel 的优势无可替代。✅零编码门槛无需安装环境打开即用✅过程透明每一步都在眼前适合理解算法逻辑✅交互性强修改一个数值立刻看到距离变化✅适合演示向非技术人员讲解时Excel 比代码更有说服力。当然它的局限也很明显样本超过 20 个后手动维护矩阵会变得繁琐且易错。此时建议转向编程工具如 Python 的scipy.cluster.hierarchy或 R 的hclust()函数。但正因如此Excel 成为了最好的“启蒙老师”——它让你亲手“种”出一棵聚类树而不是仅仅看到结果。当你第一次在 Excel 里看着那几个数字慢慢合并成簇仿佛看见数据自己讲出了它的故事那种感觉真的很不一样。