文章目录

  • 基于层次的聚类方法 简介
  • 基于层次的聚类方法 概念
  • 聚合层次聚类 图示
  • 划分层次聚类 图示
  • 基于层次的聚类方法 切割点选取
  • 族间距离 概念
  • 族间距离 使用到的变量
  • 族间距离 最小距离
  • 族间距离 最大距离
  • 族间距离 中心点距离
  • 族间距离 平均距离
  • 基于层次聚类 ( 聚合层次聚类 ) 步骤
  • 基于层次聚类 ( 聚合层次聚类 ) 算法终止条件
  • 族半径 计算公式
  • 基于层次聚类总结

基于层次的聚类方法 简介


1 . 基于层次的聚类方法 : 将 数据集样本对象 排列成 聚类树 , 在 指定 的层次 ( 切割点 ) 进行切割 , 切割点 时刻 的聚类分组 , 就是 最终需要的聚类分组 ; 也就是这个切割点的切割的时刻 , 互相关联的样本 , 划分到一个聚类分组中 ;

2 . 基于层次聚类方法 的两种方式 :

① 聚合层次聚类 : 开始时 , 每个对象都是一个聚类分组 ( 原子聚类 ) , 根据 聚类之间的相似性 , 对原子聚类逐渐合并 , 最终会合并成一个聚类 ; 其 本质是 由 多个聚类分组 切割成 成少数 聚类分组 ;

② 划分层次聚类 : 开始时 , 所有的样本都在一个聚类中 , 根据聚类间相似性 , 对聚类进行划分 , 最终 每个样本 都会被划分成一个聚类分组 ( 原子聚类 ) ; 本质是 由 少数 聚类分组 划分成多个 聚类分组 ;

基于层次的聚类方法 概念


1 . 基于层次的聚类方法 概念 : 将数 据集样本对象 排列成 树结构 , 称为 聚类树 , 在指定的层次 ( 步骤 ) 上切割数据集样本 , 切割后时刻的 聚类分组 就是 聚类算法的 聚类结果 ;

2 . 基于层次的聚类方法 : 一棵树可以从叶子节点到根节点 , 也可以从根节点到叶子节点 , 基于这两种顺序 , 衍生出两种方法分支 , 分别是 : 聚合层次聚类 , 划分层次聚类 ;

3 . 聚合层次聚类 ( 叶子节点到根节点 ) : 开始时 , 每个样本对象自己就是一个聚类 , 称为 原子聚类 , 然后根据这些样本之间的 相似性 , 将这些样本对象 ( 原子聚类 ) 进行 合并 ;

常用的聚类算法 : 大多数的基于层次聚类的方法 , 都是 聚合层次聚类 类型的 ; 这些方法从叶子节点到根节点 , 逐步合并的原理相同 ; 区别只是聚类间的相似性计算方式不同 ;

4 . 划分层次聚类 ( 根节点到叶子节点 ) : 开始时 , 整个数据集的样本在一个总的聚类中 , 然后根据样本之间的相似性 , 不停的切割 , 直到完成要求的聚类操作 ;

5 . 算法性能 : 基于层次的聚类方法的时间复杂度为 O(N2)O(N^2)O(N2) , 如果处理的样本数量较大 , 性能存在瓶颈 ;

聚合层次聚类 图示


1 . 聚合层次聚类 图示 :

① 初始状态 : 最左侧 五个 数据对象 , 每个都是一个聚类 ;

② 第一步 : 分析相似度 , 发现 a,ba , ba,b 相似度很高 , 将 {a,b}\{a ,b\}{a,b} 分到一个聚类中 ;

③ 第二步 : 分析相似度 , 发现 d,ed, ed,e 相似度很高 , 将 {d,e}\{d, e\}{d,e} 分到一个聚类中 ;

④ 第三步 : 分析相似度 , 发现 ccc 与 d,ed,ed,e 相似度很高 , 将 ccc 数据放入 {d,e}\{d, e\}{d,e} 聚类中 , 组成 {c,d,e}\{c,d, e\}{c,d,e} 聚类 ;

⑤ 第四步 : 分析相似度 , 此时要求的相似度很低就可以将不同的样本进行聚类 , 将前几步生成的两个聚类 , 合并成一个聚类 {a,b,c,d,e}\{a, b, c, d, e\}{a,b,c,d,e} ;

2 . 切割点说明 : 实际进行聚类分析时 , 不会将所有的步骤走完 , 这里提供四个切割点 , 聚类算法进行聚类时 , 可以在任何一个切割点停止 , 使用当前的聚类分组当做聚类结果 ;

① 切割点 111 : 在切割点 111 停止 , 会得到 555 个聚类分组 , {a}\{a\}{a} , {b}\{b\}{b}, {c}\{c\}{c}, {d}\{d\}{d} , {e}\{e\}{e} ;

② 切割点 222 : 在切割点 222 停止 , 会得到 444 个聚类分组 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d}\{d\}{d} , {e}\{e\}{e} ;

③ 切割点 333 : 在切割点 333 停止 , 会得到 333 个聚类分组 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d,e}\{d, e\}{d,e} ;

④ 切割点 444 : 在切割点 444 停止 , 会得到 222 个聚类分组 ; {a,b}\{a, b\}{a,b} , {c,d,e}\{c, d, e\}{c,d,e} ;

⑤ 走完整个流程 : 会得到 111 个聚类分组 , {a,b,c,d,e}\{a, b ,c, d, e\}{a,b,c,d,e} ;

划分层次聚类 图示


1 . 划分层次聚类 图示 :

① 初始状态 : 最左侧 五个 数据对象 , 属于一个聚类 ;

② 第一步 : 分析相似度 , 切割聚类 , 将 {c,d,e}\{c,d, e\}{c,d,e} 与 {a,b}\{a ,b\}{a,b} 划分成两个聚类 ;

③ 第二步 : 分析相似度 , 将 {c,d,e}\{c,d, e\}{c,d,e} 中的 {c}\{c\}{c} 与 {d,e}\{d, e\}{d,e} 划分成两个聚类 ;

④ 第三步 : 分析相似度 , 将 {d,e}\{d, e\}{d,e} 拆分成 {d}\{d\}{d} 和 {e}\{e\}{e} 两个聚类 ;

⑤ 第四步 : 分析相似度 , 将 {a,b}\{a ,b\}{a,b} 拆分成 {a}\{a\}{a} 和 {b}\{b\}{b} 两个聚类 , 至此所有的数据对象都划分成了单独的聚类 ;

2 . 切割点说明 : 实际进行聚类分析时 , 不会将所有的步骤走完 , 这里提供四个切割点 , 聚类算法进行聚类时 , 可以在任何一个切割点停止 , 使用当前的聚类分组当做聚类结果 ;

① 切割点 111 : 在切割点 111 停止 , 会得到 111 个聚类分组 , {a,b,c,d,e}\{a, b ,c, d, e\}{a,b,c,d,e} ;

② 切割点 222 : 在切割点 222 停止 , 会得到 222 个聚类分组 ; {a,b}\{a, b\}{a,b} , {c,d,e}\{c, d, e\}{c,d,e} ;

③ 切割点 333 : 在切割点 333 停止 , 会得到 333 个聚类分组 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d,e}\{d, e\}{d,e}$ ;

④ 切割点 444 : 在切割点 444 停止 , 会得到 444 个聚类分组 , {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d}\{d\}{d} , {e}\{e\}{e} ;

⑤ 走完整个流程 : 会得到 555 个聚类分组 , {a}\{a\}{a} , {b}\{b\}{b}, {c}\{c\}{c}, {d}\{d\}{d} , {e}\{e\}{e} ;

基于层次的聚类方法 切割点选取


1 . 算法终止条件 ( 切割点 ) : 用户可以指定聚类操作的算法终止条件 , 即上面图示中的切割点 , 如 :

① 聚类的最低个数 : 聚合层次聚类中 , nnn 个样本 , 开始有 nnn 个聚类 , 逐步合并 , 聚类个数逐渐减少 , 当聚类个数达到最低值 minminmin , 停止聚类算法 ;

② 聚类最高个数 : 划分层次聚类中 , nnn 个样本 , 开始有 111 个聚类 , 逐步划分 , 聚类个数逐渐增加 , 当聚类个数达到最大值 maxmaxmax , 停止聚类算法 ;

③ 聚类样本的最低半径 : 聚类的数据样本范围不能无限扩大 , 指定一个阈值 , 只有将该阈值内的样本放入一组 ; 半径指的是所有对象距离其平均点的距离 ;

2 . 切割点回退问题 : 切割点一旦确定 , 便无法回退 ; 这里以聚合层次聚类为例 :

① 处于切割点 444 : 如已经执行到了步骤三 , 此时处于切割点 444 , 聚类分组为 {a,b}\{a, b\}{a,b} , {c,d,e}\{c, d, e\}{c,d,e} ;

② 试图回退到 切割点 333 : 想要会回退到切割点 333 的状态 , 视图将聚类分组恢复成 {a,b}\{a, b\}{a,b} , {c}\{c\}{c}, {d,e}\{d, e\}{d,e} ;

③ 无法回退 : 该操作是无法实现的 , 聚类分组一旦 合并 或 分裂 , 此时就无法回退 ;

族间距离 概念


族间距离 :

① 作用: 族间距离 , 就是聚类分组之间的距离 , 之前的距离计算都是 样本 之间的距离 , 这里的基于层次聚类时 , 不管是聚合层次聚类 , 还是划分层次聚类 , 其都要进行 聚类分组 间的相似度比较 ,

② 聚合层次聚类 : 是 根据 聚类的族间距离 ( 聚类分组相似性 ) 将不同的聚类分组进行合并 ;

③ 划分层次聚类 : 是 根据 聚类的族间距离 ( 聚类分组相似性 ) 将不同的聚类分组进行划分 ( 拆分 ) ;

族间距离 使用到的变量


公式中 用到的 变量 :

① 样本表示 : ppp 和 qqq 表示 分别 处于两个聚类分组中的 两个样本 ;

② 样本距离表示 : d(p,q)d(p, q)d(p,q) 表示 ppp 样本对象 与 qqq 样本对象的距离 ;

③ 聚类 ( 族 ) 表示 : CiC_iCi​ 和 CjC_jCj​ 分别表示两个 聚类 / 族 / 聚类分组 ;

④ 聚类距离表示 : d(Ci,Cj)d(C_i, C_j)d(Ci​,Cj​) 表示 CiC_iCi​ 聚类 与 CjC_jCj​ 聚类 之间的距离 ;

⑤ 聚类中心点 : mim_imi​ 是 CiC_iCi​ 聚类的中心点 , mjm_jmj​ 是 CjC_jCj​ 聚类的中心点 ;

⑥ 样本个数 : nin_ini​ 是 CiC_iCi​ 聚类的样本个数 , njn_jnj​ 是 CjC_jCj​ 聚类的样本个数 ;

族间距离 最小距离


Ci,CjC_i \,, C_jCi​,Cj​ 族间距离 最小距离 公式 :

dmin(Ci,Cj)=minp∈Ci,q∈Cjd(p,q)d_{min}(C_i , C_j) = min _{p \in C_i , q \in C_j} d(p, q)dmin​(Ci​,Cj​)=minp∈Ci​,q∈Cj​​d(p,q)

dmin(Ci,Cj)d_{min}(C_i , C_j)dmin​(Ci​,Cj​) 表示两个聚类的最小距离 ;

ppp 是属于 CiC_iCi​ 聚类中的任意样本 ;

qqq 是属于 CjC_jCj​ 聚类中的任意样本 ;

总结 : 两个聚类中两个最近的样本之间的距离就是 聚类间的 最小距离 ;

族间距离 最大距离


Ci,CjC_i \,, C_jCi​,Cj​ 族间距离 最大距离 公式 :

dmax(Ci,Cj)=maxp∈Ci,q∈Cjd(p,q)d_{max }(C_i , C_j) = max _{p \in C_i , q \in C_j} d(p, q)dmax​(Ci​,Cj​)=maxp∈Ci​,q∈Cj​​d(p,q)

dmax(Ci,Cj)d_{max }(C_i , C_j)dmax​(Ci​,Cj​) 表示两个聚类的最大距离 ;

ppp 是属于 CiC_iCi​ 聚类中的任意样本 ;

qqq 是属于 CjC_jCj​ 聚类中的任意样本 ;

总结 : 两个聚类中两个最远的样本之间的距离就是 聚类间的 最大距离 ;

族间距离 中心点距离


Ci,CjC_i \,, C_jCi​,Cj​ 族间距离 中心点距离 公式 :

dmean(Ci,Cj)=d(mi,mj)d_{mean }(C_i , C_j) = d(m_i, m_j)dmean​(Ci​,Cj​)=d(mi​,mj​)

dmean(Ci,Cj)d_{mean }(C_i , C_j)dmean​(Ci​,Cj​) 表示两个聚类的 中心点距离 ;

mim_imi​ 是 CiC_iCi​ 聚类的中心点 ;

mjm_jmj​ 是 CjC_jCj​ 聚类的中心点 ;

d(mi,mj)d(m_i, m_j)d(mi​,mj​) 表示 mim_imi​ 样本 和 mjm_jmj​ 样本 之间的距离 ;

总结 : 两个聚类中的中心点样本之间的距离就是 聚类间的 中心点距离 ;

族间距离 平均距离


Ci,CjC_i \,, C_jCi​,Cj​ 族间距离 平均距离 公式 :

davg(Ci,Cj)=1ninj∑p∈Ci∑q∈Cjd(p,q)d_{avg}(C_i , C_j) = \frac{1}{n_i n_j}\sum_{p \in C_i}\sum_{q \in C_j} d(p, q)davg​(Ci​,Cj​)=ni​nj​1​p∈Ci​∑​q∈Cj​∑​d(p,q)

dmean(Ci,Cj)d_{mean }(C_i , C_j)dmean​(Ci​,Cj​) 表示两个聚类的 中心点距离 ;

ppp 是属于 CiC_iCi​ 聚类中的任意样本 ;

qqq 是属于 CjC_jCj​ 聚类中的任意样本 ;

nin_ini​ 是 CiC_iCi​ 聚类的样本个数 ;

njn_jnj​ 是 CjC_jCj​ 聚类的样本个数 ;

∑p∈Ci∑q∈Cjd(p,q)\sum_{p \in C_i}\sum_{q \in C_j} d(p, q)∑p∈Ci​​∑q∈Cj​​d(p,q) 表示 聚类 CiC_iCi​ 中每一个点 到 聚类 CjC_jCj​ 中所有点的距离 , 这里 CiC_iCi​ 中每个点都对应 njn_jnj​ 个距离 , nin_ini​ 个点 , 对应 ni×njn_i \times n_jni​×nj​ 个距离 ;

总结 : 两个聚类中的 平均距离 就是 聚类间的 所有点的距离的平均距离 ;

基于层次聚类 ( 聚合层次聚类 ) 步骤


聚合层次聚类步骤 :

① 原理 : 根据 聚类分组 的 族间距离 对相似的 聚类分组 进行 逐步合并 ;

② 步骤一 : 每个样本都构成 聚类分组 , 称为 原子聚类 ;

③ 步骤二 : 计算所有 聚类 之间的距离 ; 可以采用 最小距离 , 最大距离 , 中心点距离 , 平均距离 中的一个 ;

④ 步骤三 : 将距离最近的两个 聚类分组 合并 , 聚类的个数 减少 111 个 ;

⑤ 步骤四 : 转到 步骤二 计算聚类间距离 , 步骤三 合并近距离聚类 ; 如果满足算法终止条件 , 那么停止聚类 , 否则一直循环迭代 , 最终合并成一个聚类 ;

基于层次聚类 ( 聚合层次聚类 ) 算法终止条件


算法终止条件 : 是由 用户 指定的 , 如 :

① 聚类分组 ( 族 ) 个数 : 当聚类的个数达到阈值 , 算法终止 ;

② 聚类半径 : 每个 聚类的半径 都超过某个阈值 ;

族半径 计算公式


族 ( 聚类 ) 半径计算公式 :

R=1n∑i=1nd(pi−m)R=\frac{1}{n}\sum _{i=1}^n d(p_i - m)R=n1​i=1∑n​d(pi​−m)

RRR 表示聚类半径 ;

nnn 表示聚类中的 样本 个数 ;

mmm 代表聚类中心点 ;

d(pi−m)d(p_i - m)d(pi​−m) 表示聚类中第 iii 个样本距离中心点的距离 ;

基于层次聚类总结


1 . 基于层次聚类 的核心 : 是计算 两个 聚类分组 ( 族 ) 之间的距离 , 根据 族间距离 进行 聚类合并 ;

2 . 适用场景 : 如果 每个 聚类 密度差不多 , 族间距离 分离的很清晰 , 那么使用不同的 族间距离 进行聚类 产生的聚类结果 基本一致 ;

3 . 算法缺陷 : 基于层次距离不适用于以下情况 ; 聚类分组 分离的不明显 ; 形状不是球形 , 凹形的 ; 聚类间大小不等 ; 各个聚类间样本密度不同 ;

【数据挖掘】基于层次的聚类方法 ( 聚合层次聚类 | 划分层次聚类 | 族间距离 | 最小距离 | 最大距离 | 中心距离 | 平均距离 | 基于层次聚类步骤 | 族半径 )相关推荐

  1. 层次聚类定义、层次聚类过程可视化、簇间距离度量、BIRCH、两步聚类、BIRCH算法优缺点

    层次聚类定义.层次聚类过程可视化.簇间距离度量.BIRCH.两步聚类.BIRCH算法优缺点 目录

  2. K-Means算法、层次聚类、密度聚类及谱聚类方法详述

    1.聚类算法概述 (1)什么是聚类? 聚类就是对大量未知标注的数据集,按照数据内部存在的数据特征将数据集划分为多个不同的类别,使类别内的数据比较相似,类别之间的数据相似度比较小,属于无监督学习. 聚类 ...

  3. 八种点云聚类方法(三)

    本文为博主原创文章,未经博主允许不得转载. 本文为专栏<python三维点云从基础到深度学习>系列文章,地址为"https://blog.csdn.net/suiyingy/ar ...

  4. 《基于场景的工程方法》作者问答录

    <基于场景的工程方法>(Scenario-Focused Engineering,本书中文版正在翻译中)一书描述了在开发与交付基于软件的产品时,一种以客户为中心的精益与敏捷方法.本书所描述 ...

  5. 文献学习(part23)--双向聚类方法综述

    学习笔记,仅供参考,有错必纠 文章目录 双向聚类方法综述 摘要 引言 双向聚类方法 稀疏双向聚类 谱双向聚类 信息双向聚类 双向聚类方法综述 摘要 传统的聚类方法由于无法提取样本和变量间的局部对应关系 ...

  6. 单细胞测序数据的降维方法及细胞亚型鉴定聚类方法总结

    图1.细胞亚型的鉴定及分析(Stegle et al. NATURE REVIEWS | GENETICS, 2015) 随着单细胞测序技术的发展,每个研究或实验中测定的细胞数量在显著增加.现在很多单 ...

  7. 各种深度聚类方法摘要

    Spectral Clustering with Graph Neural Networks for Graph Pooling 频谱聚类(SC)是一种流行的聚类技术,用于在图形上查找强连接的社区. ...

  8. 单细胞测序数据的降维方法及细胞亚型的鉴定聚类方法总结

    图1.细胞亚型的鉴定及分析(Stegle et al. NATURE REVIEWS | GENETICS, 2015) 随着单细胞测序技术的发展,每个研究或实验中测定的细胞数量在显著增加.现在很多单 ...

  9. 【数据挖掘】聚类算法 简介 ( 基于划分的聚类方法 | 基于层次的聚类方法 | 基于密度的聚类方法 | 基于方格的聚类方法 | 基于模型的聚类方法 )

    文章目录 I . 聚类主要算法 II . 基于划分的聚类方法 III . 基于层次的聚类方法 IV . 聚合层次聚类 图示 V . 划分层次聚类 图示 VI . 基于层次的聚类方法 切割点选取 VII ...

最新文章

  1. Python:机器学习库 sklearn
  2. 7、MySQL设置日志输出方式
  3. mysql execute指令_MYSQL简单命令
  4. 基本的排序算法php,php四种基础排序算法
  5. Python 关键词触发的魔法方法
  6. WinForm 的dataGridView全选,反选
  7. OpenCV精进之路(二):图像处理——线性滤波和非线性滤波
  8. 浅析C#的事件处理和自定义事件 (转载)
  9. 李阳疯狂英语900句 331-545
  10. java从入门到精通一(java开发入门)
  11. 怎么给批处理(bat)添加注释
  12. 低代码平台- Intellij IDEA 插件开发
  13. 二元二次方程例题_二元二次方程组 解法 例题精编版
  14. JRE瘦身 制作小工具
  15. MacOS 安装 gstreamer 最新版本(1.20.0)
  16. 用海伦公式计算三角形的周长与面积
  17. php获取证书编号没有serialNumberHex只有serialNumber处理方法
  18. 栈顶指针和队尾指针指向当前位置和指向下一个位置的区别?——轻松搞懂栈和队列指针的指向问题
  19. UnityVR--小程序4--第一人称控制器
  20. u8信息服务器,U8开启服务器

热门文章

  1. linux每天进步一点点-7月3日
  2. Oracle感慨(转)
  3. 解决vs启动出现“cannot find one or more components .Please reinstall the application”
  4. 关闭360浏览器广告(广告洁癖)
  5. bzoj2339[HNOI2011]卡农 dp+容斥
  6. MyEclipse 15 集成SVN
  7. 答辩完了该思考些什么
  8. HDU 2504 又见GCD
  9. day3_python学习笔记_chapter5_数字
  10. ROS学习笔记九:ROS工具