层次聚类,层次聚类和树状图(WPGMA和UPGMA方法)(Matlab代码实现)

简介: 层次聚类,层次聚类和树状图(WPGMA和UPGMA方法)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

    或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

层次聚类是一种将数据点逐步分组形成层次结构的聚类方法,可以通过树状图(树状图表示法)来展示不同聚类级别的关系。WPGMA(加权平均法)和UPGMA(未加权平均法)是常见的层次聚类算法,它们基于距离或相似性度量来计算不同聚类之间的距离,并逐步合并最相似的聚类。这些方法在生物学、社会科学和信息检索等领域得到广泛应用,帮助理解数据集内部的结构和关系。

层次聚类,层次聚类和树状图(WPGMA和UPGMA方法),此函数定义了任意矩阵的层次聚类,并显示相应的树状图。

根据以下选项执行层次聚类:

- 方法:WPGMA或UPGMA

- 度量:由用户定义的任意匿名函数,用于衡量向量的不相似度

- 聚类参数:簇的数量或不相似度限制

该函数返回连接树、聚类、排名项目列表,并可选择基于不相似度矩阵计算的树状图。

层次聚类是一种基于相似度或距离的聚类算法,它将数据点逐渐合并成越来越大的簇。在层次聚类中,每个数据点最初被视为一个单独的簇,然后根据它们之间的相似度或距离逐渐合并成更大的簇,最终形成一个包含所有数据点的完整的聚类结果。

层次聚类方法中,WPGMA(Weighted Pair Group Method with Arithmetic Mean)和UPGMA(Unweighted Pair Group Method with Arithmetic Mean)是两种常用的树状图方法。

在WPGMA方法中,每次簇的合并是通过计算两个簇中所有点之间的平均距离来实现的,然后依据这个距离来确定最佳的合并方式。

在UPGMA方法中,每次簇的合并也是通过计算两个簇中所有点之间的平均距离来实现的,但在这种情况下,被合并的两个簇的点数被视为有相同的权重。

树状图是一种用来可视化数据点之间的相似度或距离的图形表达方式,层次聚类方法产生的结果通常可以通过树状图来展示。在树状图中,数据点被表示为叶节点,簇的合并过程则通过连接节点的方法来呈现。

通过研究层次聚类和树状图,我们可以更好地了解数据点之间的相似性和联系,有助于我们发现数据集中的潜在模式和结构。此外,层次聚类和树状图的研究也为我们提供了一种有效的数据可视化和分析方法,有助于我们更好地理解复杂数据之间的关系。

层次聚类及树状图(WPGMA与UPGMA方法)研究

一、层次聚类概述

层次聚类(Hierarchical Clustering)是一种通过逐步合并或分割数据点形成层次结构的聚类方法。其核心原理为:

  1. 初始化:将每个数据点视为独立簇;
  2. 相似度计算:采用欧氏距离、曼哈顿距离等度量簇间相似性;
  3. 合并/分割策略
  • 凝聚法(自底向上):合并相似度最高的簇对;
  • 分裂法(自顶向下):从整体簇中逐步分割出子簇;
  1. 迭代更新:重复合并或分割操作,直至满足终止条件(如簇数量或距离阈值);
  2. 结果输出:生成包含所有数据点的层次结构树。

该方法的优势在于无需预先指定簇数量,且能通过树状图直观展示数据关系,广泛应用于生物学、社会科学及信息检索等领域。

二、WPGMA与UPGMA方法详解

WPGMA(加权平均法)和UPGMA(未加权平均法)是层次聚类中基于距离度量的经典算法,二者均通过计算簇间平均距离实现合并,但在权重分配上存在差异。

1. WPGMA(加权平均组群法)
  • 合并规则:计算两个簇中所有点对的平均距离,合并后新簇与其他簇的距离通过加权平均确定,权重与簇中点数相关。
  • 数学表达:若簇A有m个点,簇B有n个点,则新簇AB与簇C的距离为:

image.gif 编辑

  • 特点:考虑簇规模对距离的影响,适用于数据点分布不均衡的场景。
2. UPGMA(未加权平均组群法)
  • 合并规则:同样计算簇间平均距离,但合并后新簇与其他簇的距离采用未加权平均,即忽略簇中点数差异。
  • 数学表达:新簇AB与簇C的距离为:

image.gif 编辑

  • 特点:假设所有点对贡献均等,适用于数据点分布均匀的场景,但可能因忽略簇规模导致偏差。
3. 方法对比
维度 WPGMA UPGMA
权重分配 考虑簇中点数,加权平均 忽略簇规模,未加权平均
适用场景 数据点分布不均衡 数据点分布均匀
计算复杂度 较高(需加权计算) 较低(简单平均)
结果偏差 较小(权重调整) 较大(可能忽略簇规模影响)

三、树状图(Dendrogram)可视化

树状图是层次聚类结果的直观展示工具,其核心要素包括:

  1. 叶节点:代表原始数据点;
  2. 内部节点:表示簇合并事件;
  3. 分支长度:反映簇间距离,长度越长表示相似性越低;
  4. 层次结构:自底向上展示合并过程,顶层为根节点(包含所有数据点)。

通过树状图,用户可快速识别数据中的潜在模式和结构,例如在生物学中用于分析物种亲缘关系,在市场研究中用于客户细分。

四、研究进展与应用案例

1. 算法优化
  • 并行化改进:针对大规模数据集,研究者提出基于MPI的并行层次聚类算法,通过机群系统降低计算复杂度,实验表明其执行效率显著提升且结果与串行算法一致。
  • 混合策略:结合最小生成树算法(如Kruskal算法)优化层次聚类,通过排序类间距离减少重复计算,进一步提高算法可伸缩性。
2. 应用领域
  • 生物学:UPGMA方法广泛用于构建系统发生树,推断物种进化关系。例如,通过分析DNA序列相似性,重建物种树状结构。
  • 遗传多样性分析:在农业研究中,层次聚类用于分析作物表型性状遗传多样性。例如,对福建山药地方品种的表型性状进行聚类,揭示其遗传背景及分类关系。
  • 文本挖掘:在多文档自动摘要中,层次聚类用于发现子主题,提高摘要信息覆盖度。例如,结合语义层次聚类与密度聚类算法,优化句子聚类效果。
3. 局限性及改进方向
  • UPGMA的假设限制:该方法假设进化速率恒定,可能导致大型数据集或进化速率差异显著时的结果偏差。改进方向包括引入可调容差参数(如UMGMA方法)或结合其他距离法(如邻接法)。
  • 计算复杂度:传统层次聚类时间复杂度为O(n3),难以直接应用于海量数据。未来研究可聚焦于近似算法或分布式计算框架的优化。
  • 参数说明
  • n_clusters:最终簇数量;
  • affinity:距离度量方式(如欧氏距离);
  • linkage:合并策略(average对应UPGMA,weighted对应WPGMA)。
2. 工具推荐
  • MATLAB:内置linkage函数支持WPGMA/UPGMA,dendrogram函数用于可视化。
  • Geneious:生物信息学软件,提供UPGMA聚类工具用于系统发生树构建。

五、总结与展望

层次聚类通过树状图直观展示数据层次结构,WPGMA与UPGMA作为经典方法,在生物学、遗传学及文本挖掘等领域发挥重要作用。未来研究可聚焦于以下方向:

  1. 算法优化:结合并行计算、近似算法降低计算复杂度;
  2. 混合模型:融合层次聚类与其他方法(如K-means、谱聚类)提升性能;
  3. 可解释性:开发可视化工具辅助用户理解聚类结果,例如交互式树状图。

随着数据规模持续增长,层次聚类的改进与应用将进一步推动跨学科研究发展。

📚2 运行结果

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

部分代码:

function varargout = Hierarchical_clustering(Matrix,Method,Metric,Parameter,Value,Colormap)

% Data control

Matrix = Data_control(Matrix,Method,Metric,Parameter,Value,Colormap);

if nargout == 4    

   % Creation of the bars corresponding to values

   [Figure, Axes, Bars] = Creation_bars(Matrix,Colormap);

   

end

% Linkage

Tree = Linkage(Matrix,Method,Metric);

% Analysis of tree

[Roots, Clusters, Number] = Analysis(Tree,Parameter,Value);

if nargout == 4

   

   % Creation of the dendrogram

   Axes = Creation_dendrogram(Axes,Bars,Tree,Roots,Clusters,Matrix,Method,Metric,Number,Colormap);

   

   % X axes link

   linkaxes(Axes,'x');

   

end

% Output arguments

switch nargout

   case 3

       varargout{1} = Tree;

       varargout{2} = Clusters;

       varargout{3} = Roots;

   case 4

       varargout{1} = Figure;

       varargout{2} = Tree;

       varargout{3} = Clusters;

       varargout{4} = Roots;

end

end

% Data control

function Matrix = Data_control(Matrix,Method,Metric,Parameter,Value,Colormap)

% Matrix

[n,m] = size(Matrix);

if n < m

   Matrix = Matrix';

end

% Method

switch upper(Method)

   case {'WPGMA','UPGMA'}

   otherwise, error('Clustering method must be ''WPGMA'' or ''UPGMA''.');

end

% Metric

switch class(Metric)

 

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]杨汉碧,徐克学.中国杜鹃花属高山杜鹃亚组的数量分类研究[J].植物研究, 1983(03):75-86.DOI:CNKI:SUN:MBZW.0.1983-03-003.

[2]淦文燕,李德毅,王建民.一种基于数据场的层次聚类方法[J].电子学报, 2006, 34(2):258-262.DOI:10.3321/j.issn:0372-2112.2006.02.014.

[3]梁斌梅.基于层次聚类识别数据集前n个全局孤立点[J].计算机工程与应用, 2012, 048(009):101资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
29天前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
109 0
|
1月前
|
JSON JavaScript API
【干货满满】分享淘宝、拼多多商品数据抓取方案对比
淘宝与拼多多在数据抓取上存在显著差异,主要体现在反爬机制、技术难点、实现方案及合规风险等方面。淘宝反爬更强,加密复杂,需高匿代理与JS逆向;拼多多相对简单,可用轻量工具。两者均存在法律风险,建议优先使用官方API。本文为开发者提供技术选型参考。
|
7天前
|
存储 消息中间件 人工智能
Fluss:重新定义实时数据分析与 AI 时代的流式存储
Apache Fluss(孵化中)是新一代流式存储系统,旨在解决传统架构中数据重复复制、高成本与复杂性等问题。它基于 Apache Arrow 构建,支持列式存储、实时更新与高效查询,融合流处理与湖仓架构优势,适用于实时分析、AI 与多模态数据场景。Fluss 提供统一读写、冷热分层与开放生态,已在阿里巴巴大规模落地,助力企业实现低成本、高效率的实时数据处理。
|
6天前
|
机器学习/深度学习 Python
Matlab|基于BP神经网络进行电力系统短期负荷预测
Matlab|基于BP神经网络进行电力系统短期负荷预测
66 26
|
8天前
|
传感器 算法 安全
【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab实现)
【无人机】四旋翼飞行器控制、路径规划和轨迹优化(Matlab实现)
|
9天前
|
人工智能 弹性计算 大数据
和五所高校一起,我们共同打造了一门 AI 课程!
阿里云、超星尔雅协同北京大学、南京大学、复旦大学、上海交通大学、浙江大学五所高校名师,共同推出的 AI 通识公益系列课程「动手学 AI:人工智能通识与实践」将于 9月 1 日面向全国所有高校、所有专业的师生正式开放。
115 4
|
4天前
|
机器学习/深度学习 数据采集 搜索推荐
【图像分类】基于主成分分析和核支持向量机的脑磁共振图像分类器(Matlab代码实现)
【图像分类】基于主成分分析和核支持向量机的脑磁共振图像分类器(Matlab代码实现)
|
1天前
|
资源调度 算法 计算机视觉
基于总变差(TV)的图像去模糊,使用总变差正则化进行图像去模糊研究(Matlab代码实现)
基于总变差(TV)的图像去模糊,使用总变差正则化进行图像去模糊研究(Matlab代码实现)
|
1天前
|
传感器 数据可视化 知识图谱
计算轴向磁铁和环状磁铁的磁场(Matlab代码实现)
计算轴向磁铁和环状磁铁的磁场(Matlab代码实现)
|
1天前
|
存储 决策智能 Python
家庭电池能源管理系统(Simulink仿真实现)
家庭电池能源管理系统(Simulink仿真实现)