机器学习系列——(十九)层次聚类

引言

在机器学习和数据挖掘领域,聚类算法是一种重要的无监督学习方法,它试图将数据集中的样本分组,使得同一组内的样本相似度高,不同组间的样本相似度低。层次聚类(Hierarchical Clustering)是聚类算法中的一种,以其独特的层次分解方式,在各种应用场景中得到广泛应用,如生物信息学、图像分析、社交网络分析等。

一、概述

层次聚类算法主要分为两大类:凝聚的层次聚类(Agglomerative Hierarchical Clustering)和分裂的层次聚类(Divisive Hierarchical Clustering)。凝聚的层次聚类从每个数据点作为单独的簇开始,逐渐合并为更大的簇;而分裂的层次聚类则是从一个包含所有数据点的单一簇开始,逐步细分为更小的簇。这两种方法都会形成一个树形结构,称为层次聚类树或者聚类树(Dendrogram),通过这个树形结构,我们可以清晰地看到数据点是如何逐步聚合或分裂的。

二、算法

1. 凝聚的层次聚类

凝聚的层次聚类是最常用的层次聚类方法。它的基本步骤如下:

  1. 初始化:将每个数据点视为一个单独的簇。
  2. 寻找最近的簇:计算所有可能的簇对之间的距离,找出距离最近的一对簇。
  3. 合并簇:将最近的簇合并成一个新的簇。
  4. 更新距离:重新计算新形成的簇与其他簇之间的距离。
  5. 重复步骤2-4,直到所有数据点都聚合成一个簇,或达到预定的簇数量。

在这个过程中,簇之间的距离可以通过不同的方法来定义,常见的有:

  • 单链接(Single Linkage):簇间距离定义为两个簇中最近两个点的距离。
  • 完全链接(Complete Linkage):簇间距离定义为两个簇中最远两个点的距离。
  • 平均链接(Average Linkage):簇间距离定义为两个簇中所有点对的平均距离。
  • 质心链接(Centroid Linkage):簇间距离定义为两个簇质心之间的距离。

2. 分裂的层次聚类

分裂的层次聚类与凝聚的层次聚类相反,它从一个包含所有数据点的单一簇开始,通过迭代地将簇分裂成更小的簇,直到每个簇只包含一个数据点,或达到预定的簇数量为止。分裂的层次聚类较少使用,因为其实现较为复杂,计算成本也较高。

3. 聚类树(Dendrogram)

无论是凝聚还是分裂的层次聚类,最终都可以生成一个聚类树,即Dendrogram。Dendrogram是一种树形图,用于展示数据点是如何步骤聚合或分裂的。通过观察Dendrogram,我们不仅可以了解聚类的层次结构,还可以根据需要选择不同级别的聚类划分。

三、层次聚类的优缺点

优点:

  • 不需要预先指定簇的数量。
  • 能够生成任意形状的簇。
  • 生成的Dendrogram提供了丰富的信息,有助于理解数据结构。

缺点:

  • 对于大规模数据集,计算成本较高,尤其是在计算簇间距离时。
  • 簇的合并或分裂决策是顺序进行的,一旦完成就不能更改,这可能导致不理想的聚类结果。

四、应用实例

层次聚类在许多领域都有广泛的应用。例如,在生物信息学中,层次聚类被用来分析和分类基因表达数据;在客户细分中,帮助企业理解不同类型的客户群体;在文本分析中,用于文档或文章的分类等。

五、结语

层次聚类是一种强大而灵活的聚类方法,能够揭示数据的内在结构和层次关系。虽然它在处理大规模数据集时存在一定的局限性,但通过采用适当的优化和启发式方法,仍然可以有效应用于各种实际问题中。理解层次聚类的原理和方法,能够帮助我们更好地利用这一技术,发掘数据中隐藏的模式和知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/461921.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

战略规划的重要性及撰写步骤

当新的季度或财年到来的时候,团队需要确定首要开始的工作内容,但团队成员对于应优先处理的事务很多时候都持有不同观点,每个人都认为自己的任务应该被优先考虑,这种决策过程耗费了大量时间,以至于团队经常推迟计划的开…

C#,聚会数(相遇数,Rencontres Number)的算法与源代码

1 相遇数 相遇数(Rencontres Number,partial derangement numbers)是指部分扰动的数量,或与独立对象的r相遇的置换数(即具有固定点的独立对象的置换数)。 看不通。懂的朋友给解释一下哈。 2 源程序 using…

在 VMware 虚拟机上安装 CentOS系统 完整(全图文)教程

一、前期准备: 1.安装VMware 虚拟机软件(不在讲解,可自行去下载安装)。官网:https://customerconnect.vmware.com/cn/downloads/details?downloadGroupWKST-PLAYER-1750&productId1377&rPId111471 2.下载iso…

机器学习系列——(二十)密度聚类

引言 在机器学习的无监督学习领域,聚类算法是一种关键的技术,用于发现数据集中的内在结构和模式。与传统的基于距离的聚类方法(如K-Means)不同,密度聚类关注于数据分布的密度,旨在识别被低密度区域分隔的高…

数学建模-灰色预测最强讲义 GM(1,1)原理及Python实现

目录 一、GM(1,1)模型预测原理 二、GM(1,1)模型预测步骤 2.1 数据的检验与处理 2.2 建立模型 2.3 检验预测值 三、案例 灰色预测应用场景:时间序列预测 灰色预测的主要特点是模型使用的…

12个最常用的matplotlib图例 !!

文章目录 1、折线图 2、散点图 3、直方图 4、柱状图 5、箱线图 6、热力图 7、饼图 8、面积图 9、等高线图 10、3D图 11、时间序列图 12、树状图 总结 1、折线图 折线图(Line Plot):用于显示数据随时间或其他连续变量的变化趋势。在实际项目中…

算法------(11)并查集

例题: (1)Acwing 836.合并集合 并查集就是把每一个集合看成一棵树,记录每个节点的父节点。合并集合就是把一棵树变成另一棵树的子树,即把一棵树的父节点变为另一棵树的父节点的儿子。查询是否在同一集合就是看他们的根…

【Spring源码解读!底层原理高级进阶】【上】探寻Spring内部:BeanFactory和ApplicationContext实现原理揭秘✨

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:底层原理高级进阶》 &#x1f680…

【leetcode热题100】分隔链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head [1,4,3,2,5,2], x 3 输出&am…

Maven 安装教程

一、安装地址 1.官网安装最新版本 2.其他版本,我这里是maven-3/3.6.2 二、配置环境 1. 点击此电脑鼠标右击->属性->高级系统设置->环境变量 ,配置系统变量->新建:MAVEN_HOME 2.配置path 路径 :%MAVEN_HOME%\bin 三、安…

SpringMVC速成(一)

文章目录 SpringMVC速成(一)1.SpringMVC概述2.SpringMVC入门案例2.1 需求分析2.2 案例制作步骤1:创建Maven项目步骤2:补全目录结构步骤3:导入jar包步骤4:创建配置类步骤5:创建Controller类步骤6:使用配置类替换web.xml步骤7:配置Tomcat环境步骤8:启动运行…

【算法】一文带你快速入门动态规划算法以及动规中的空间优化

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,如果给算法的难度和复杂度排一个排名,那么动态规划算法一定名列前茅。在最开始没有什么整体的方法的时候,我也曾经被动态…