Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >聚类算法之层次聚类

聚类算法之层次聚类

作者头像
Ewdager
发布于 2020-07-14 06:22:20
发布于 2020-07-14 06:22:20
2.9K00
代码可运行
举报
文章被收录于专栏:Gvoidy备份小站Gvoidy备份小站
运行总次数:0
代码可运行

层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别的相似度类创建一个有层次的嵌套的树。

层次聚类怎么算

层次聚类分为自底向上自顶向下两种,这里仅采用scikit-learn中自底向上层次聚类法。

  1. 将数据集中每一个样本都标记为不同类
  2. 计算找出其中距离最近的2个类别,合并为一类
  3. 依次合并直到最后仅剩下一个列表,即建立起一颗完整的层次树

以下为看图说话~ 感谢 Laugh’s blog借用下说明图

把所有数据全部分为不同组

将相邻最近的两组归为同一组

重复第二步,直到合并成为一个组,聚类结束

聚类过程的散点图变化一下,就是我们要的层次图

层次聚类 Python 实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
from sklearn.cluster import AgglomerativeClustering
data = np.random.rand(100, 3) #生成一个随机数据,样本大小为100, 特征数为3

#假如我要构造一个聚类数为3的聚类器
estimator = AgglomerativeClustering(n_clusters=3)#构造聚类器
estimator.fit(data)

print(estimator.labels_)#获取聚类标签

主函数 AgglomerativeClustering 参数解释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AgglomerativeClustering(affinity='euclidean', compute_full_tree='auto',
                        connectivity=None, linkage='ward', 
                        memory=None, n_clusters=2,
                        pooling_func='deprecated')
  • affinity: 亲和力度量,有 euclidean(欧式距离), l1(L1 范数), l2(L2 范数)
  • compute_full_tree: 通常当训练了n_clusters后,训练过程就会停止,但是如果compute_full_tree=True,则会继续训练从而生成一颗完整的树
  • connectivity: 一个数组或者可调用对象或者None,用于指定连接矩阵
  • linkage: 连接方法:ward(单连接), complete(全连接), average(平均连接)可选
  • memory: 用于缓存输出的结果,默认为不缓存
  • n_clusters: 表示最终要查找类别的数量,例如上面的 2 类
  • pooling_func: 一个可调用对象,它的输入是一组特征的值,输出是一个数

返回值

  • labels: 每个样本的簇标记
  • n_leaves_: 分层树的叶节点数量
  • n_components: 连接图中连通分量的估计值
  • children: 一个数组,给出了每个非节点数量
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Sklearn参数详解—聚类算法
聚类是一种非监督学习,是将一份给定数据集划分成k类,这一份数据集可能是某公司的一批用户,也可能是某媒体网站的一系列文章,如果是某公司的一批用户,那么k-means做的就是根据用户的表现对用户的分类;如果媒体的文章,那么k-means做的就是根据文章的类型,把他分到不同的类别。
张俊红
2018/07/30
1.6K0
Sklearn参数详解—聚类算法
机器学习算法基础:层 次 聚 类 详 解
层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。所谓层次就是一层一层的进行聚类,可以采用自顶向下的聚类策略(分裂),也可以采用自下而上的策略(凝聚)。
统计学家
2020/09/22
3940
机器学习算法基础:层 次 聚 类 详 解
机器学习笔记之聚类算法 层次聚类 Hierarchical Clustering
层次聚类算法(Hierarchical Clustering)将数据集划分为一层一层的clusters,后面一层生成的clusters基于前面一层的结果。层次聚类算法一般分为两类:
Jetpropelledsnake21
2021/03/12
23.3K0
机器学习笔记之聚类算法 层次聚类 Hierarchical Clustering
全面解释无监督机器学习中层次聚类(Hierarchical Clustering)
在本文中,我们将讨论无监督机器学习中的层次聚类算法。该算法基于嵌套簇的拆分和合并。根据距离度量合并集群的链接标准如下所示,使用自底向上的方法。
deephub
2021/07/01
1.5K0
聚类算法比较
算法:聚类算法比较是包括MiniBatchKMeans、AP聚类、MeanShift、谱聚类、Ward聚类、层次聚类、DBSCAN聚类、Birch聚类和高斯混合模型聚类算法的参数被优化到最佳聚类的结果比较。
裴来凡
2022/05/29
6050
聚类算法比较
聚类-层次聚类(谱系聚类)算法
层次聚类(Hierarchical Clustreing)又称谱系聚类,通过在不同层次上对数据集进行划分,形成树形的聚类结构。很好体现类的层次关系,且不用预先制定聚类数,对大样本也有较好效果。
唔仄lo咚锵
2022/11/30
5.2K0
聚类-层次聚类(谱系聚类)算法
通透!十大聚类算法全总结!!
这些聚类算法各有优缺点,适用于不同类型的数据和不同的应用场景。选择合适的聚类算法通常取决于具体的需求、数据的特性和计算资源。
Python编程爱好者
2023/11/28
5.2K0
通透!十大聚类算法全总结!!
详细介绍了Python聚类分析的各种算法和评价指标
较为详细介绍了聚类分析的各种算法和评价指标,本文将简单介绍如何用python里的库实现它们。
润森
2022/08/18
2.5K0
详细介绍了Python聚类分析的各种算法和评价指标
【机器学习-无监督学习】聚类
  本文开始我们讲解无监督学习算法。在之前的文章中,我们给模型的任务通常是找到样本
Francek Chen
2025/01/22
1830
【机器学习-无监督学习】聚类
快速入门Python机器学习(28)
凝聚聚类(agglomerative clustering)指的是许多基于相同原则构建的聚类算法,这一原则是:算法首先声明每个点是自己的簇,然后合并两个最相似的簇,直到满足某种停止准则为止
顾翔
2022/09/23
3530
快速入门Python机器学习(28)
层次聚类算法(HAC)
为了测试层次聚类的效果,小编采用中国32个省会城市的距离作为输入,分别利用单连接算法和全连接算法对32个省进行聚类。 按照大的地区划分,人们一般将我国划分成华中、华北、华南、西北、东北、西南和华东地区,共7部分。小编这里实验的时候也是聚成7类,看看实际的效果是不是跟我们预想的相同。下图1是单连接算法实验结果,图2是全连接算法结果。
数据小冰
2022/08/15
1.2K0
层次聚类算法(HAC)
【机器学习】无监督学习携凝聚型层次聚类登场。无需预设标签,仅凭数据内在特质,逐步归拢聚合,挖掘隐藏群组,为复杂数据剖析开启智能、高效的新思路。
层次聚类是一种通过递归合并(凝聚型)或递归分裂(分裂型)数据点的方式,逐步构建出一个层次结构的聚类方法。层次聚类的结果通常通过**树状图(Dendrogram)**表示,它可以直观地显示数据点之间的相似性或距离关系。
逆向-落叶
2025/01/20
1320
【机器学习】无监督学习携凝聚型层次聚类登场。无需预设标签,仅凭数据内在特质,逐步归拢聚合,挖掘隐藏群组,为复杂数据剖析开启智能、高效的新思路。
原理+代码|详解层次聚类及Python实现
聚类分析是研究分类问题的分析方法,是洞察用户偏好和做用户画像的利器之一。聚类分析的方法非常多,能够理解经典又最基础的聚类方法 —— 层次聚类法(系统聚类) 的基本原理并将代码用于实际的业务案例是本文的目标,同时这也会为理解后续与聚类相关的推文如 K-Means 等打下基础是。
刘早起
2020/12/07
5.1K0
一文读懂层次聚类(Python代码)
本篇想和大家介绍下层次聚类,先通过一个简单的例子介绍它的基本理论,然后再用一个实战案例Python代码实现聚类效果。
算法进阶
2022/06/02
3.1K0
一文读懂层次聚类(Python代码)
【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN
2.3. 聚类 未标记的数据的 Clustering(聚类) 可以使用模块 sklearn.cluster 来实现。 每个 clustering algorithm (聚类算法)有两个变体: 一个是 class, 它实现了 fit 方法来学习 train data(训练数据)的 clusters(聚类),还有一个 function(函数),是给定 train data(训练数据),返回与不同 clusters(聚类)对应的整数标签 array(数组)。对于 class(类),training dat
片刻
2018/01/15
5.5K0
【Scikit-Learn 中文文档】聚类 - 无监督学习 - 用户指南 | ApacheCN
机器理解大数据秘密:聚类算法深度剖析
在理解大数据方面,聚类是一种很常用的基本方法。近日,数据科学家兼程序员 Peter Gleeson 在 freeCodeCamp 发布了一篇深度讲解文章,对一些聚类算法进行了基础介绍,并通过简单而详细
Angel_Kitty
2018/04/09
1.2K0
机器理解大数据秘密:聚类算法深度剖析
【机器学习】聚类算法分类与探讨
文章链接:https://cloud.tencent.com/developer/article/2465572
小馒头学Python
2024/11/14
1700
【机器学习】聚类算法分类与探讨
使用Python实现层次聚类算法
层次聚类(Hierarchical Clustering)算法是一种基于树形结构的聚类方法,它将数据点逐渐合并成越来越大的簇,直到所有数据点都合并到一个簇中。在本文中,我们将使用Python来实现一个基本的层次聚类算法,并介绍其原理和实现过程。
Echo_Wish
2024/04/13
4390
【Python】机器学习之聚类算法
这些聚类算法在不同场景和数据特性下有各自的优势和局限性,选择合适的算法取决于问题的性质和对结果的需求。聚类在图像分割、客户细分、异常检测等领域都有广泛的应用。
SarPro
2024/02/20
3030
【Python】机器学习之聚类算法
机器学习(8)——其他聚类层次聚类画出原始数据的图小结
层次聚类 紧接上章,本章主要是介绍和K-Means算法思想不同而的其他聚类思想形成的聚类算法。 k-means算法却是一种方便好用的聚类算法,但是始终有K值选择和初始聚类中心点选择的问题,而这些问题也会影响聚类的效果。为了避免这些问题,我们可以选择另外一种比较实用的聚类算法-层次聚类算法。顾名思义,层次聚类就是一层一层的进行聚类,可以由上向下把大的类别(cluster)分割,叫作分裂法;也可以由下向上对小的类别进行聚合,叫作凝聚法;但是一般用的比较多的是由下向上的凝聚方法。 本章主要涉及到的知识点有: 层次
DC童生
2018/04/27
1.8K0
机器学习(8)——其他聚类层次聚类画出原始数据的图小结
推荐阅读
相关推荐
Sklearn参数详解—聚类算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验