Hierarchical Methods|学习笔记

简介: 快速学习 Hierarchical Methods

开发者学堂课程【高校精品课北京理工大学数据仓库与数据挖掘(下)Hierarchical Methods】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/1041/detail/15650


Hierarchical Methods


内容介绍:

一、基于层次的聚类算法

二、凝聚聚类算法

三、基于划分的层次聚类

四、层次聚类算法的特点


本课程继续数据仓库与数据挖掘的学习。主要介绍基于层次的聚类算法,在基于层次的聚类算法中,介绍基于层次聚类算法的基本概念,凝聚的层次聚类算法和分裂的层次聚类算法。


一、基于层次的聚类算法

首先来看一下基于层次的聚类算法的一些基本知识。基于层次的聚类算法,它产生的是嵌套类型的蔟。

这些嵌套类型的蔟是以曾次数的结构被组织,可以通过系统树图的形式可视化。

下图就展示了一个系统树图,

图片1.png

1.系统树图

那么首先在这样的一个数据集合中数据对象一和三是最相似的,首先被合并为一个蔟,然后数据的对象二和五相似,也被合并为一个,然后数据对象二五和数据对象四相似,那么合并为一个蔟,那么在此基础之上一三这个蔟和二五四这个蔟又很相似,合并为一个新的蔟,最后和数据对象四相似,那么合并为最终得到一个大蔟,那么这个蔟,就是所有数据对象的集合,也就是通过这样的一个系统的树图,记录了基于层次的一些蔟,它的凝聚的过程。

对于基于层次的聚类算法来说,它主要有两种策略,一种是凝聚的层次聚类算法,一种是划分的层次聚类算法。

2.凝聚的层次聚类算法和分裂的层次聚类算法

(1)、凝聚的层次聚类算法

凝聚的层次聚类算法是属于一种自底向上的层次聚类算法,那么下图的最左边开始,

图片2.png

首先每一个数据对象被认为是一个蔟。计算不同蔟的相似性,合并最相似的两个蔟,依次合并,一直到所有的数据对象在一个蔟中,那么这就是基于凝聚的层次聚类算法。

(2)、分裂层次聚类算法

和基于凝聚的层次聚类算法的过程相反。分裂的层次聚类算法是从这个图的最右边开始,首先所有的数据对象是一个蔟。选择合适的分裂准则,将这个蔟一分为二。然后再在剩下的蔟中选择一个 sse 最大的蔟,再利用分裂准则,继续对这个蔟进行分裂,那么一直分裂分裂到最后,每一个数据对象是一个蔟。基于分裂的层次聚类算法,它是一种置顶向下的过程。

图片3.png

3.树图意义

对于基于层次的聚类算法,它的结果是一个系统树图,这颗系统树图其实记录了所有层次上的聚类结果,如果想要得到某一个层次上的聚类结果,只需要对这个系统树图,在某一个上进行截断就可以,比如说在第一个层次上进行阶段,就可以得到两个蔟,而在第二个层次上阶段就可以得到多个比较细的。也就是系统树图,它记录了蔟何蔟之间的层次关系。


二、凝聚聚类算法

首先介绍凝聚的层次聚类算法,在层次聚类算法中,大部分的聚类算法都是基于凝聚的层次聚类算法。基于凝聚的层次聚类算法的核心就是不断迭代的去合并两个离得最近的蔟。那么,这个是基于凝聚层次聚类算法的过程

1. 算法

计算邻近矩阵。首先它会计算每一个蔟之间的近邻性矩阵

然后让每一个数据对象作为一个蔟,根据经领取正合并离的最近的两个蔟。因为两个蔟,一旦合并之后,这个蔟的数目发生变化,就需要去更新邻近矩阵,再更新近邻矩阵之后,再去再近邻矩阵中找到最相近的两个蔟,再进行合并

重复。那么迭代这个步骤一直到所有的数据对象属于同一个蔟。

2.过程图示

通过一个例子向大家介绍凝聚层次,聚类算法的过程。下图展示的是四个数据对象,就是表示的是四个基因。那么在四个基因中,根据相似度的测量方法,可以计算这四个基因的相似度,会发现其中基因一和基因三。它的相似度是最强的,那首先合并这两个基因,那么形成一个新的蔟。在合并得到这个新的蔟之后,这个时候蔟的数目就由原来的四个变成了三个,那么在这三个蔟中,又发现下两个蔟是最相近的,然后就把这两个蔟进行合并,这个时候出的数目就成三个变成两个,最后将将这两个蔟合并得到最终的蔟,就是所有数据对象在一个蔟中。

那么,根据这样的一个过程,就可以画出一个系统树图,首先是一三两个基因合并,然后是二四两个基因合并,然后最后是这两个蔟进行合并。

图片4.png

3. 近邻性的矩阵的变化情况

来看一下,根据上面的一个过程中,那么近邻性的矩阵的变化情况是怎么样的?假设下图是使用的数据聚集,基于凝聚的层次聚类算法,首先会把每一个数据对象作为一个蔟,然后构建每一个簇和每一个簇之间的近邻矩阵,那么每一个方格代表的是这两个蔟之间的相似度。

图片5.png

那么假设基于凝聚的层次聚类算法运行到某一个过程,那么这个时候,合并后只剩下了五个蔟。

图片6.png

那么计算这五个蔟之间的相似性可以得到这五个蔟的相似性矩阵,或者叫做邻近性矩阵。那么在介绍相似性矩阵之后,会发现其中两个蔟 c2 和 c5,它们的这样的一个相似度是最高的,也就是最邻近的,那么就需要把 c2 和 c5 这两个蔟合并为一个蔟。

图片7.png

那么,合并之后,可以看一下这个时候临近矩阵中就只剩下四个蔟,那么其中的多了一个新蔟,这个时候这个新蔟和其余蔟的相似度就需要被更新。

图片8.png

4.如何更新相似度

那怎么样去更新下了一个相似度也就是说,在基于凝聚的层次聚类算法中,它的一个核心问题就是如何去更新蔟和蔟之间的相似度。更新蔟和蔟之间的相似度有很多种方法,那么主要是包含单的方法,全链的方法,中心链的方法和以及基于一些标函数的方法,那么分别介绍一下。

图片9.png

(1)、单链计算方法

首先看一下单链的计算方法,那么单链的计算方法指的是两个蔟的相似性或者是两个蔟的距离可以用这两个蔟中离得最近的两个数据对象之间的相似度或者是距离来代表。

那么,这种单链的相似度测量方法,它的一个缺点是,这种相似性度量方法是基于局部的,它只考虑了两个蔟离得比较近的区域。两个蔟的全体结构是被忽略,其次至于单链的,这种相似性度量方法,它对于噪音和异常点是很敏感的,它只关心的是离得两个比较近的点,那比如离得两个比较近的点,其中有一个点是异常点,那么这样一个单链就会影响这两个蔟的相似度。

图片10.png

(2)、全链相似度计算方法

再看一下全链的相似度计算方法。所谓全链的计算方法,它指的是两个蔟的相似度或距离,用这两个蔟中离得最远的这两个数据对象的相似度或者是距离来代表。和单链的相似度度量方法一样,全链的都相似性度量方法,它对噪音依然是很敏感的,但是如果使用全练的相似度度量方法,它产生的蔟的一个趋势是,它比较喜欢产生比较紧凑的蔟,因为会选这相似度比较高的,也就意味着这两个蔟的整体距离是比较近的。

图片11.png

(3)、组平均相似度测量方法

那么,第三种相似度测量方法,把它称之为叫做组平均。至于组平均的相似度测量方法,主要指的是这两个蔟的相似度或者是距离,是用这两个蔟的所有点对的相似度的平均值或距离的平均值来代表。对于主平均这种相似度测量方法来说,它能够很好的避免异常点的影响,但是它的计算复杂度比较高。

(4)、中心链相似度测量方法

此外,还有这种中心链,也就是两个蔟的相似度或距离,由这两个蔟的原型一般可以用它的中心点来代表,就是由这两个蔟的中心点的距离和相似度来代表。

图片12.png

(5)、目标函数的定义相似度测量方法

此外,还可以用一些。目标函数的定义来定义相似度测量方法,比如说沃德方法,在沃德方法中两个粗的相似性,可以理解为合并这两个蔟对 sse 的降低程度。那么,基于沃德方法的相似度度量方法,它其实和组平均的方法是比较接近的,这种方法它对于噪音和异常点是有比较强的容忍,而且,它比较倾向于去产生一些球形的蔟。


三、基于划分的层次聚类

在介绍完基于凝聚的层次聚类算法之后,介绍一下基于划分的层次聚类。基于划分的层次聚类和基于凝聚的层次聚类过程刚好相反,那么用下图介绍它的过程。

图片13.png

首先所有的数据对象是属于同一个蔟,然后可以选择一个分裂准则,将这个蔟一分为二。在得到若干个蔟之后,可以选择对 sse 贡献最大的这个,再把这个蔟一分为二,那么一直分裂,一直到所有的数据对象全部被分裂,就是每一个数据对象构成一个蔟为止。


四、层次聚类算法的特点

最后总结一下层次聚类算法的特点。

1.一旦合并,无法撤销

在层次聚类算法中,它的一个缺点就是,一旦划分或者一个凝聚动作完成,那么这个过程它是不可逆转的,于是,一旦一个决定被执行,如果产生了大量的误差,这个误差,这个误差是会累积的。

2.没有直接全局最小化

那么其次,聚类中每次凝聚或者是分裂的时候,就是基于一个局部最优策略的,所以说,它是缺乏全局优化的。

3.不同计划下不同问题

因为在层次聚类算法中使用到了各种不同的相似度度量方法,因为这些度量方法的缺陷可能会导致层次聚类算法,它有可能会对异常点噪音敏感,甚至不能够蔟理这样的一个不同尺寸和非蔟状的蔟,那么有可能,它还会倾向于去把一些大的蔟进行分裂。这个就是关于层次聚类算法的缺点。

关于层次聚类算法,就介绍到这里。

 

相关文章
|
SQL 存储 关系型数据库
后端技术在现代软件开发中的重要性
本文将深入探讨后端技术在现代软件开发中的关键角色和影响。我们将从后端技术的基本概念入手,逐步解析其在实际项目中的应用,最终展示其对整个软件生态系统的重要性。
398 5
|
机器学习/深度学习 编解码 计算机视觉
深度学习笔记(十一):各种特征金字塔合集
这篇文章详细介绍了特征金字塔网络(FPN)及其变体PAN和BiFPN在深度学习目标检测中的应用,包括它们的结构、特点和代码实现。
1894 0
|
9月前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
存储 编解码 安全
阿里云服务器2核4G、4核8G、8核16G配置租用收费标准与活动价格参考
通常情况下,个人和一般企业用户在购买阿里云服务器时比较喜欢购买2核4G、4核8G、8核16G等配置,这些配置既能满足各种图文类中小型网站和应用又能满足企业网站应用、批量计算、中小型数据库系统等场景,2核4G配置适合新手入门或初创企业,4核8G与8核16G兼具成本与性能优势,适合通用场景,本文介绍这些配置的最新购买价格,包含原价收费标准和最新活动价格。
|
9月前
|
JSON API 开发者
闲鱼商品详情API接口(闲鱼API系列)
闲鱼商品详情API为开发者提供便捷、高效且合规的途径,获取闲鱼平台上特定商品的详细信息,如标题、价格、描述和图片等。该接口采用GET请求方式,需传入app_key、item_id、timestamp和sign等参数,返回JSON格式数据。示例代码展示了如何使用Python调用此API,包括生成签名和处理响应。开发者需替换实际的app_key、app_secret和商品ID,并关注官方文档以确保接口使用的准确性。
3176 1
|
搜索推荐 Linux iOS开发
打造个人听书神器:使用pyttsx3实现文字转语音
在这个信息时代,利用Python的pyttsx3库,可以轻松将文字转化为语音,制作个人听书工具。本文介绍pyttsx3的安装与使用,以及如何通过编程实现小说文本的语音化,提供个性化阅读体验。
917 0
|
JSON 自然语言处理 搜索推荐
开发一款专属的 VSCode 代码提示插件
作为前端开发者一定用过VsCode这款利器,而其强大的插件能力无疑更是让我们深深的爱上了它。据不完全统计,VsCode插件市场中的插件数量已经超过了3万,由此可见大家的热情有多高。其中涉及到各种各样功能的插件,有主题曲相关的,有代码开发相关的,比如代码片段、Git插件、tslint等等。作为开发者,肯定用过各种各样的代码提示的插件,代表性的有TabNine、Copilot等等。今天就让我们来自己动手,开发一款专属的代码提示插件。毕竟别人的再好也是别人的, 属于自己的才是最好的。
3304 1
开发一款专属的 VSCode 代码提示插件
|
安全 关系型数据库 MySQL
【赵渝强老师】MySQL的连接方式
本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。
1140 1
|
Java 数据库连接 API
seata回滚问题之全局异常如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
1992 104
|
安全 API 调度
「架构」嵌入式鸿蒙架构
**鸿蒙嵌入式架构概览** HarmonyOS,华为的分布式操作系统,应用于嵌入式设备,以微内核、跨平台能力和组件化设计著称。核心功能包括设备统一管理、分布式软总线及安全机制。特点:低时延、高安全性、易开发。优点在于灵活性、扩展性和性能,但需构建生态、增加开发者资源和争取市场认可。采用模块化设计,支持多语言开发,利用分布式通信协议和硬件抽象层,通过Huawei AppGallery推动应用生态。
863 0