机器学习算法基础:层 次 聚 类 详 解

12.聚类算法之层次聚类 起步 层次聚类(hierarchical clustering)是聚类算法中的一种,通过计算不同类别的相似度组成新的类创建一个层次的嵌套的树。 基本结构如图所示: 层次聚类算法介绍 假设有n个待聚类的样本,对于层次聚类算法,它的步骤是: 步骤一:(初始化)将每个样本都视为一个聚类; 步骤二:计算各个聚类之间的相似度; 步骤三:寻找最近的两个聚类,将他们归为一类; 步骤四:重复步... 阅读详情

层次聚类

层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。所谓层次就是一层一层的进行聚类,可以采用自顶向下的聚类策略(分裂),也可以采用自下而上的策略(凝聚)。

聚合聚类:
开始将每个样本各分到一个类,之后将距离相近的两类合并,建立一个新的类,重复此操作直到满足停止条件,得到层次化的类别。

分裂聚类:
开始将所有的样本分到一个类,之后将已有类中相距最远的样本分到两个新的类,重复此操作直到满足停止条件,得到层次化的类别。

簇间的距离度量

合并或拆分层次聚类算法都是基于簇间相似度进行的,每个簇类包含了一个或多个样本点,通常用距离评价簇间或样本间的相似度,即距离越小相似度越高,距离越大相似度越低。1.最小距离法
最小距离法是指以所有簇间样本点距离的最小值作为簇间距离的度量,但是该方法非常容易受到极端值的影响。
2.最大距离法
最大距离法是指以所有簇间样本点距离的最大值作为簇间距离的度量,同样,该方法也容易受到极端值的影响。

3.平均距离法
最小距离法和最大距离法都容易受到极端值的影响,可以使用平均距离法对如上两种方法做折中处理,即以所有簇间样本点距离的平均值作为簇间距离的度量。

层次聚类的步骤

在理解有关点与点、点与簇和簇与簇之间的距离度量标准之后,就需要进一步掌握层次聚类算法是如何实现样本点聚类的。层次聚类的步骤如下:
(1)将数据集中的每个样本点当作一个类别。
(2)计算所有样本点之间的两两距离,并从中挑选出最小距离的两个点构成一个簇。
(3)继续计算剩余样本点之间的两两距离和点与簇之间的距离,然后将最小距离的点或簇合并到一起。
(4)重复步骤(2)和(3),直到满足聚类的个数或其他设定的条件,便结束算法的运行。
如上的4个步骤可能理解起来比较困难,下图的GIF比较形象:

参数

sklearn.cluster.AgglomerativeClustering(n_clusters=2, affinity=’euclidean’, memory=None, connectivity=None, compute_full_tree=’auto’, linkage=’ward’, pooling_func=)

n_clusters:用于指定样本点聚类的个数,默认为2。
affinity:用于指定样本间距离的衡量指标,可以是欧氏距离、曼哈顿距离、余弦相似度等,默认为'euclidean';如果参数linkage为'ward',该参数只能设置为欧氏距离。
memory:是否指定缓存结果的输出,默认为否;如果该参数设置为一个路径,最终将把计算过程的缓存输出到指定的路径中。
connectivity:用于指定一个连接矩阵。
compute_full_tree:通常情况下,当聚类过程达到n_clusters时,算法就会停止,如果该参数设置为True,则表示算法将生成一棵完整的凝聚树。
linkage:用于指定簇间距离的衡量指标,默认为'ward',表示最小距离法;如果为'complete',则表示使用最大距离法;如果为'average',则表示使用平均距离法。

层次聚类案例

层次聚类还是比较简单易用的,下面是经典的鹫尾花数据集。每朵鸢尾花有4个数据,分别为萼片长(单位:厘米)、萼片宽(单位厘米)、花瓣长度(单位厘米)和花瓣宽(单位厘米)。我们希望能找到可行的方法可以按每朵花的4个数据的差异将这些鸢尾花分成若干类,让每一类尽可能的准确,以便帮助植物专家对这些花进行进一步的分析。可视化输出结果如下:


文末福利


各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。


这个是一份Python代码速查表



下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图



怎样获取呢?可以添加我们的AI派团队的程序媛姐姐
一定要备注【高清图】哦
????????????????????

➕我们的程序媛小姐姐微信要记得备注【高清图】哦
来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~


机器学习——层次聚类 层次聚类(Hierarchical Clustering)是一类算法的总称,分为两种方式:凝聚法:从下往上不断合并簇,将小类进行聚合分裂法:从上往下不断分离簇,将大类分割成小类。 阅读详情

相关推荐

【AI】用iOS的ML(机器学习)创建自己的AI App

在机器学习中,一切都始于模型,这是进行预测或识别的系统。教计算机学习涉及使用训练数据的机器学习算法进行学习。从训练中生成的输出通常称为机器学习模型。有不同类型的机器学习模型来解决同一个问题(例如对象识别),但使用不同的算法。是其中一些机器学习算法。

欧阳天涵的专栏 5809

聚类算法:Hierarchical Clustering层次聚类

1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。 层次聚...

满腹的小不甘 6万+

人工智能AI 与 机器学习ML 的关键区别

人工智能(AI)是指计算机系统能够执行通常需要人类智能才能完成的任务。包括理解自然语言、识别图像、解决复杂问题和做出决策。AI的目标是创建能够模仿或超越人类智能的系统。弱人工智能(弱AI):也称为窄AI,专注于特定任务。例如,语音助手(如Siri和Alexa)和推荐系统(如Netflix和Amazon的推荐算法)。强人工智能(强AI):也称为通用AI,具有执行任何人类智能任务的能力。目前,强AI仍处于理论阶段,尚未实现。机器学习(ML)是人工智能的一个子领域。

王教主的博客 5944

聚类算法(4)--Hierarchical clustering层次聚类

目录 一、层次聚类 1、层次聚类的原理及分类 2、层次聚类的流程 3、层次聚类的优缺点 二、python实现 1、sklearn实现 2、scipy实现 树状图分类判断 一、层次聚类 1、层次聚类的原理及分类 1)层次法(Hierarchicalmethods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个...

Andy_shenzl的博客 7万+

用 ML.NET 开发智能应用:让 .NET 程序员轻松掌握机器学习

ML.NET是一个由微软开发的开源跨平台机器学习框架,专为 .NET 开发者设计,允许他们在不离开 C# 或 F# 编程语言的情况下,进行机器学习建模和应用。通过 ML.NET,开发者无需学习 Python 或深度学习框架的复杂操作,就能在其现有的 .NET 应用中集成强大的机器学习功能。ML.NET 支持各种机器学习任务,包括分类、回归、聚类、推荐、异常检测、自然语言处理等。无论是开发企业级应用、Web 应用,还是桌面应用,ML.NET 都能为你的项目带来智能化提升。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3841

OpenCV机器学习(8)随机森林(Random Forests)算法cv::ml::RTrees类

cv::ml::RTrees 是 OpenCV 机器学习模块中的一部分,用于实现随机森林(Random Forests)算法。随机森林是一种集成学习方法,它通过构建多个决策树并将它们的结果进行汇总来提高预测准确性和控制过拟合。

jndingxin的专栏 1036

层次聚类

一、前述 聚类就是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小. 数据聚类算法可以分为结构性或者分散性,许多聚类算法在执行之前,需要指定从输入数据集中产生的分类个数。 1.分散式聚类算法,是一次性确定要产生的类别,这种算法也已应用于从下至上聚类算法。 2.结构性算法利用以前成功使用过的聚类器进行分类,而分散型算法则是一次确定...

weixin_43758551的博客 5769

使用 Spark ML Pipeline 进行机器学习

Spark ML Pipeline 的引入,是受到scikit-learn的启发,虽然 MLlib 已经足够简单实用,但如果目标数据集结构复杂,需要多次处理,或是在学习过程中,要使用多个转化器 (Transformer) 和预测器 (Estimator),这种情况下使用 MLlib 将会让程序结构极其复杂。所以,一个可用于构建复杂机器学习工作流应用的新库已经出现了,它就是 Spark 1.2 ...

小数据研究院 7297

层次聚类算法_机器学习算法基础:层 次 聚 类 详 解

通 知CPEC2020会议通知(含征文、案例竞赛、联合会成员申报)10月全新课程培训报名 | Python/人工智能/微信小程序/数据结构(Python)高级研修班层次聚类层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。所谓层次就是一层一层的进行聚类,可以采用自顶向下的聚类策略(分裂),也可以采用自下而上的策略(凝聚)。聚合聚类:开始将每个样本各分到一个类,之后将距离相近的...

weixin_39759155的博客 793

在 Azure ML 上用 .NET 跑机器学习

.NET ML 你在用了吗?

Kinfey 4411

小白快速上手 labelimg:新手图像标注详解教程

本教程主要帮助没有使用过labelimg的小白上手该软件,快速学会基本操作和打标签,为数据集准备打下基础。

小白一枚~ 2万+

Unity 机器学习(ML-Agents) 基础

Unity 机器学习 ML-Agents 基础Unity 官方示例下载ML-Agents 部分Python 下载AnacondaAnaconda 虚拟环境构建 ML-Agents安装 ML-Agents Python 包安装 ML-Agents 包ML-Agents 入门指南Unity Hub 部分虚拟环境 训练虚拟环境 训练运行:虚拟环境 开始训练:虚拟环境 观察训练进度:虚拟环境 停止训练虚拟环境 恢复训练虚拟环境 训练模型ML-Agents 打造新的学习环境ML-Agents 资产导入 Unity 官

Maddie_Mo的博客 1万+

OpenLayers源码解析1 Map.js

Map.js 父类:./PluggableMap/PluggableMap 引用:5个模块 ./renderer/Composite.js ./PluggableMap.js ./obj.js ./control.js(控件) ./interaction.js(交互) 主要功能:核心组件,渲染地图 必要参数: view layers target controls和interactions要是未指定,使用默认值 方法:createRenderer()? /** * @module ol/Map */ i

qq_45005996的博客 1898

AI/ML 基础知识与常用术语全解析

AI/ML入门:基础知识与常用术语全解析,超全的哟~

Pocker_Spades_A的博客 7175

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5632

ORB-SLAM3单目+IMU实战:从数据加载到位姿优化的完整流程解析

本文详细解析了ORB-SLAM3单目+IMU模式的完整实战流程。从EuRoC等数据集的数据格式准备、系统启动与数据流入口,到帧构建、IMU预积分、视觉-惯性联合初始化,再到基于运动模型的跟踪、局部地图优化及多线程协同,提供了从环境配置到代码解读的全面指南,并分享了参数调优与性能分析的实用调试经验。

weixin_29085151的博客 296

一文读懂ML中的解析解与数值解

作者:Jason Brownlee翻译:王雨桐校对:丁楠雅本文约2300字,建议阅读8分钟。本文将介绍解析解和数值解的定义,并介绍不同的解在机器学习中的应用。你是否有如下...

数据派THU 3732

VideoPose3d:环境搭建+制作自己的视频

论文链接:3D human pose estimation in video with temporal convolutions and semi-supervised training 代码链接:https://github.com/facebookresearch/VideoPose3D 环境搭建:ubuntu20.04+pytorch1.8+cuda10.2+python3.6+anaconda 1.启动anaconda环境 新建环境命令: conda create -n pytorc.

willbetter01的博客 4943

OpenCV机器学习(2)提升算法类cv::ml::Boost

cv::ml::Boost 是 OpenCV 机器学习模块中的一部分,用于实现提升算法(Boosting Algorithms)。Boosting 是一种集成学习方法,通过组合多个弱学习器来创建一个强学习器。OpenCV 提供了对几种不同类型的 Boosting 算法的支持,包括 Discrete AdaBoost、Real AdaBoost、LogitBoost 和 Gentle AdaBoost。

jndingxin的专栏 1238

运放单电源供电和双电源供电的实际应用案例

文章摘要:本文对比分析了运放单电源与双电源供电的典型应用场景及电路设计要点。单电源供电适用于低成本、小体积设备,如便携音箱(5V供电+中点偏置)、工业4-20mA信号转换(12V供电+电压跟随)和物联网传感器(3.3V低功耗设计);双电源供电则适合高精度要求场景,如Hi-Fi音响(±15V对称输出)、医疗设备(±5V微弱信号放大)和精密仪器(±15V宽动态范围)。文末提供常见运放选型对照表,涵盖LM324、TL082等型号的供电参数与核心特性,为不同应用场景提供选型参考。(149字)

qq_37999850的博客 611

搭建 Newman + Postman + Git + Jenkins 环境教程

一步步搭建 Newman、Postman、Git 和 Jenkins 的环境。这些工具常用来做 API 测试和 CI/CD 自动化,尤其是 Postman 和 Newman 搭配 Git 和 Jenkins,能实现 API 集合的版本管理和自动测试。

Criss@陈磊 436

机器学习基础【ML】

机器学习基础【ML】

sikh_0529的博客 2万+

手把手教你学simulink(13.2)--构建一个单相并网逆变器Simulink仿真模型

基于Simulink的单相并网逆变器项目的详细仿真实例。这个项目将重点放在逆变器的详细建模、最大功率点跟踪(MPPT)控制策略、并网控制和仿真分析上。我们将使用MATLAB/Simulink来构建整个系统,并通过具体的代码和模块来实现各个功能。

MHD0815的博客 546

ML.NET 机器学习实用指南(一)

机器学习(ML)在许多行业中得到广泛应用,如科学、医疗保健和研究,其受欢迎程度仍在不断增长。2018 年 3 月,微软推出了 ML.NET,以帮助.NET 爱好者与机器学习(ML)进行工作。通过这本书,你将探索如何使用 C#代码构建 ML.NET 应用程序,并使用各种 ML 模型。本书首先为你概述了机器学习和使用的 ML 算法类型,同时介绍了 ML.NET 是什么以及为什么需要它来构建 ML 应用程序。然后,你将探索 ML.NET 框架、其组件和 API。本书将作为一本实用指南,帮助你使用 ML.NET 库

龙哥盟 3001

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【机器学习聚类算法实战-5】机器学习聚类算法之DBSCAN聚类、K均值聚类算法、分层聚类和不同度量的聚集聚类实例分析

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)聚类算法是一种基于密度的聚类算法,能够有效地发现任意形状的聚类,并能够处理噪声数据。

一伦明悦的博客 1684

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

AIDE ML — 机器学习工程代理

AIDE 算法是一个树搜索代理,能够自主地编写、调试和测试代码,直到用户定义的指标达到最大值。由 LLM 驱动的代理,能够编写、评估和改进机器学习代码。知道还有其他引用或衍生自 AIDE 的公共项目吗?提示:使用完全本地化的模型时,性能可能会有所下降。使用侧边栏粘贴您的 API 密钥,上传数据,设置。用户界面显示实时日志、解决方案树和最佳代码。使用的Python 包的形式发布,并包含。智能体使用数据集,并用通俗易懂的英语描述。完全本地化(代码+评估器——无外部调用)替换新的搜索启发式方法、评估器。

具身机器人和通用AI 3963

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 求你了,别再用 print 调试代码了
下一篇: 如何基于Paddle快速训练一个98%准确率的抑郁文本预测模型?
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值