news 2026/10/23 5:30:21

【算法导论】Agglomerative Hierarchical Clustering(AHC)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【算法导论】Agglomerative Hierarchical Clustering(AHC)

层次聚类算法

层次聚类算法通过计算两类数据点间的相似性,对所有数据点中最为相似的两个数据点进行组合,并反复迭代这一过程。简单的说层次聚类的合并算法是通过计算每一个类别的数据点与所有数据点之间的距离来确定它们之间的相似性,距离越小,相似度越高。并将距离最近的两个数据点或类别进行组合,生成聚类树。

假设有N个待聚类的样本,对于层次聚类来说,基本步骤就是:

1)(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度;
2)寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个);
3)重新计算新生成的这个类与各个旧类之间的相似度;
4)重复2和3直到所有样本点都归为一类,结束。

合成聚类
整个聚类过程其实是建立了一棵树,在建立的过程中,可以通过在第二步上设置一个阈值,当最近的两个类的距离大于这个阈值,则认为迭代可以终止。另外关键的一步就是第三步,如何判断两个类之间的相似度有不少种方法。

距离计算方法

两个点(点集)的相似通过欧式距离计算得出

数据点与点集间的距离计算方式:

将数据点B与数据点C进行组合后,重新计算各类别数据点间的距离矩阵。数据点间的距离计算方式与之前的方法一样。这里需要说明的是点集(B,C)与其他数据点间的计算方法。当我们计算(B,C)到A的距离时,需要分别计算B到A和C到A的距离均值。

数据点与点集距离计算公式

两个组合数据点间的距离计算方式:

计算两个组合数据点间距离的方法有三种,分别为Single Linkage,Complete Linkage和Average Linkage。在开始计算之前,我们先来介绍下这三种计算方法以及各自的优缺点。

Single Linkage
Single Linkage的计算方法是将两个数据点集中距离最近的两个数据点间的距离作为这两个点集的距离。这种方法容易受到极端值的影响。两个很不相似的点集可能由于其中的某个极端的数据点距离较近而组合在一起。

Complete Linkage

Complete Linkage的计算方法与Single Linkage相反,将两个点集中距离最远的两个数据点间的距离作为这两个点集的距离。Complete Linkage的问题也与Single Linkage相反,两个相似的组合数据点可能由于其中的极端值距离较远而无法组合在一起。

Average Linkage

Average Linkage的计算方法是计算两个点集中的每个数据点与其他所有数据点的距离。将所有距离的均值作为两个点集间的距离。这种方法计算量比较大,但结果比前两种方法更合理。这种聚类的方法描述起来比较简单,但是计算复杂度比较高,为了寻找距离最近/远和均值,都需要对所有的距离计算个遍,需要用到双重循环,每次迭代都只能合并两个子类,这是非常慢的。

两个点(点集)的相似通过jaccard距离计算得出

可以将点集按照一定的变换方式将原始的数据映射的{0,1}或者{0,1,2}这些空间中,以{0,1}空间为例,所有的点集中包含的数据只有0,1,jaccard distance定义如下:

主要就是计算两个点集的相似性的,如果两个点集完全独立,那么J距离为1,如果两个点集非常相近,那么J距离趋近于0。然后我们就可以直接通过最后的J距离判断这两个点集是否进行融合。

值得一提的是,因为这里映射的空间是{0,1}空间,我们知道在计算中的最原始的计数是二进制,如果直接进行0和1的比较操作速度是非常快的。Brief描述子的提出也就是基于这方面的考虑。

部分参考:http://www.jianshu.com/p/785bb19386db但该链接文章中有部分错误。

参考文献:

[1]Toldo R, Fusiello A. Robust Multiple Structures Estimation with J-Linkage[C]// European Conference on Computer Vision. Springer-Verlag, 2008:537-547.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 5:29:12

从一张照片推断拍摄地点:AI图像检索与地理定位实战

把一张随手拍的照片丢给AI,让它告诉你这是在哪拍的,这件事听起来像是电影里的桥段,但现在用开源工具加一点检索思路就能实现。我最早接触这个需求,是在帮朋友整理旅行相册的时候,几千张照片散落在各个设备里&#xff0…

作者头像 李华
网站建设 2026/10/23 5:28:43

从LLM到AI Agent:四大核心能力拆解与工程落地指南

1. 当“会聊天”变成“会干活”:LLM与Agent的分界线先聊一个很现实的问题:你身边一定有人把大模型用得飞起,写文案、改代码、查资料、翻译文档,感觉无所不能;但真要让它“自主完成一件带依赖关系的任务”——比如“帮我…

作者头像 李华
网站建设 2026/10/23 5:28:41

AIGC多样性增强:系统解决生成同质化的实战指南

做 AIGC 落地这件事也有不短时间了,我见过很多团队最开始都特别兴奋,觉得生成模型是“创意永动机”。但真把项目跑起来,画风很快就变成:让模型给新产品取 10 个名字,出来 8 个都带“智”、“享”、“云”;让…

作者头像 李华
网站建设 2026/10/23 5:28:22

多态深度解析:从底层原理到业务落地,彻底搞懂面向对象核心特性

多态,几乎是每个开发者都会挂在嘴边的词。我写了快十年业务代码,面试过不少候选人,也带过刚入行的新人,大家都能背出面向对象三大特性是“封装、继承、多态”,但真被问到“你手头这段代码哪里用到了多态,它…

作者头像 李华
网站建设 2026/10/23 5:27:25

基于JSP+Servlet+MySQL的网上订餐系统毕业设计完整方案

简介:这份资源是北方民族大学计算机科学与工程学院2014届学士学位论文《基于Web的网上订餐系统的设计与实现》,面向计算机相关专业的毕业设计者与网上订餐系统开发学习者。论文完整论述了网上订餐系统的分析、设计与实现过程,涵盖系统可行性分…

作者头像 李华
网站建设 2026/10/23 5:26:59

开源私有化AI质检系统实战:从选型到上线的完整复盘

产线质检这个事,在制造业待久了的人都清楚,它从来不只是技术问题,更是成本问题。我们车间原来靠人工目检,两个人盯一台设备,一天下来眼睛酸得不行,漏检率还压不下去。后来评估过商用质检软件,报…

作者头像 李华