系列文章目录

Cluster analysis :Basic Concepts and Algorithms – Part 1 Overview
Cluster analysis :Basic Concepts and Algorithms – Part 2 K-means


CONTENTS

  • 系列文章目录
  • 1. 前言
  • 2 凝聚层次聚类算法
    • 2.1 基本凝聚层次聚类算法
    • 2.2 簇之间的邻近性
      • 2.2.1 单链或MIN技术
      • 2.2.2 全链或MAX技术或团
      • 2.2.3 组平均技术
      • 2.2.4 Ward’s 方法和质心法
      • 2.2.5 簇邻近度量:Lance-Williams公式
    • 2.3 处理不同大小的簇
  • 3 层次聚类的优势和局限性
    • 3.1 优势
    • 3.2 局限性

1. 前言

本篇文章主要介绍一下层次聚类(Hierarchical Clustering),也叫做系统聚类。
层次聚类通过生成一系列嵌套的簇而形成层次树,常常用树状图(dendrogram)来显示,该树状图能够记录簇的合并和分裂的次序。如下图1-1所示。

图1-1 层次聚类的嵌套簇和树状图

生成层次聚类有两种基本方法:

  • 凝聚的(Agglomerative):从单个点作为个体簇开始,每步合并两个最近的簇,直到所有的点合并成一个簇(或者直到得到K个簇为止)
  • 分裂的(Divisive):从一个包含所有点的簇开始,每步分裂一个簇,直到每个簇只包含一个点(或者直到得到K个簇为止)。

这里主要讲解凝聚层次聚类技术,因为它较为常见。

2 凝聚层次聚类算法

2.1 基本凝聚层次聚类算法

  1. 令每个点为一个簇
  2. 计算邻近度矩阵(Proximity Matrix)
  3. repeat
  4. 合并最接近的两个簇
  5. 更新邻近度矩阵,用于反映新的簇与原来的簇之间的邻近性
  6. until 仅剩下一个簇

    下面的图示展现了凝聚层次聚类的图示过程:
  • 首先从单点簇和邻近度矩阵开始(步骤1和2)
  • 当合并了一些簇后,得到C1,C2,C3,C4,C5(中间状态)
  • 接着合并两个近的簇,C2和C5(步骤4), 并更新邻近度矩阵 (步骤5)

2.2 簇之间的邻近性

层次聚类的关键步骤:更新邻近度矩阵 (步骤5)。簇之间的邻近度根据特定的簇的类型来定义。下面介绍几种主要的层次聚类的簇之间邻近度的定义方法。

一类方法是基于图来定义:如单链(single link), 全链(complete link),组平均(Group average)

  • 单链或MIN技术:使用两个不同的簇中任意两点之间的最短距离(最大相似度),也就是两个簇中最近的两个点的邻近度(链接两个簇的最短边),来定义不同的簇之间的邻近度,如图(a)
  • 全链或MAX技术:使用两个不同的簇中任意两点之间的最长距离(最小相似度),也就是两个簇中最远的两个点的邻近度(链接两个簇的最长边),来定义不同的簇之间的邻近度,如图(b)
  • 组平均:使用两个不同的簇中所有点对的邻近度的平均值,来定义不同的簇之间的邻近度,如图(c)

另一类方法是基于原型来定义邻近度:如Ward方法和质心法等。

  • Ward方法:假定质心为簇代表,但使用合并两个簇时SSE增加量来定义不同的簇之间的邻近度。
  • 质心法(Distance Between Centroids):使用质心之间的邻近度,来定义不同的簇之间的邻近度,如下图。

接下来就通过对下面样本数据的聚类来分别介绍这几种不同的方法

样本数据

2.2.1 单链或MIN技术

单链或MIN技术:使用两个不同的簇中任意两点之间的最短距离(最大相似度),也就是两个簇中最近的两个点的邻近度(链接两个簇的最短边),来定义不同的簇之间的邻近度。下面是对样本数据的6个点采用单链聚类的图示:

图2-1 六个点的单链聚类

例如,簇{3,6}和簇{2,5}的距离即为点2和点3之间的距离,计算过程如下:
dist( {3,6} , {2,5} ) = min( dist(3,2),  dist(6,2) , dist(3,5), dist(6,5) ) = min(0.15, 0.25, 0.28, 0.39) = 0.15.

单链技术的优势:擅长处理非椭圆形状的簇(Can handle non-elliptical shapes),如下图2-2;
单链技术的局限性:对噪声和离群点很敏感(Sensitive to noise),如下图2-3。

图2-2 使用单链技术对非球形的簇进行聚类

图2-3 使用单链技术对含有离群点的簇进行聚类

2.2.2 全链或MAX技术或团

全链或MAX技术(或完全链接):使用两个不同的簇中任意两点之间的最长距离(最小相似度),也就是两个簇中最远的两个点的邻近度(链接两个簇的最长边),来定义不同的簇之间的邻近度。下面是对样本数据的6个点采用全链聚类的图示:

图2-4 六个点的全链聚类

例如:
dist( {3,6}, {4} ) = max( dist(3,4), dist(6,4) ) = max(0.15, 0.22) = 0.22.
dist( {3,6}, {2,5} ) = max( dist(3,2), dist(6,2), dist(3,5), dist(6,5) ) = max(0.15,0.25,0.28,0.39) = 0.39.
dist( {3,6}, {1} ) = max( dist(3,1), dist(6,1) ) = max(0.22,0.23) = 0.23.

全链的优劣势恰好和单链相反:
优势:对噪声不太敏感(Less susceptible to noise)如下图2-5;
局限性:可能会使得大的簇破裂成两个簇(Tends to break large clusters),且偏好球形的簇(Biased towards globular clusters),
,如下图2-6。

图2-5 使用全链技术对含有离群点的簇进行聚类

图2-6 使用全链技术对一大一小的两个簇进行聚类

2.2.3 组平均技术

组平均(Group Average):使用两个不同的簇中所有点对的邻近度的平均值,来定义不同的簇之间的邻近度。这是一种界于单链和全链之间的折中方法。
两个簇之间的邻近度由下等式定义:

注:mi 和 mj 分别是簇Ci 和 Cj 的大小。
采用组平均的方法对样本数据的6个点进行聚类,图示如下:

图2-7 六个点的组平均聚类

例如:
dist( {3,6,4} , {1} ) = (0.22+0.37+0.23) / (3×1) = 0.28
dist( {2,5} , {1} ) = (0.24+0.34) / (2×1) = 0.29
dist( {3,6,4} , {2,5} ) =(0.15+0.28+0.25+0.39+0.20+0.29)/(3×2) = 0.26
dist( {3,6,4} , {2,5} ) 小于dist( {3,6,4} , {1} ) ,因此先合并簇{3,6,4}和簇{2,5}

组平均的优势(Strengths)是对噪声不太敏感(Less susceptible to noise);局限性(Limitations)是偏好球形的簇(Biased towards globular clusters)。

2.2.4 Ward’s 方法和质心法

  • Ward方法:假定质心为簇代表,但使用合并两个簇时SSE(误差平方和)的增加量来定义不同的簇之间的邻近度。(使用误差的平方和作为目标函数,与K均值很相似)

    图2-8 六个点的Ward方法聚类

Ward的优势(Strengths)同样是对噪声不太敏感(Less susceptible to noise);局限性(Limitations)是偏好球形的簇(Biased towards globular clusters)。
Ward方法可以用来初始化K-means

  • 质心法(Distance Between Centroids):使用质心之间的邻近度,来定义不同的簇之间的邻近度。

    质心法的局限性:倒置(invension)的可能性,合并的两个簇可能比前一步合并的两个簇距离更小。而其他方法,被合并的簇之间的距离随层次聚类进展单调地增加(或者不增)。

2.2.5 簇邻近度量:Lance-Williams公式

以上提到的几种簇邻近度可以看作簇Q和R之间邻近度函数(Lance-Williams公式)在选择不同参数时的结果。Lance-Williams公式:

其中p是邻近度函数,簇R是通过合并簇A和簇B形成的,mA,mB和mQ分别簇A,B,Q里点的个数。
可见,簇R和Q之间的邻近度是簇A,B与簇Q之间邻近度的线性函数。

下表是常见层次聚类方法的Lance-Williams系数:


图2-9 几种凝聚层次聚类技术的对比

2.3 处理不同大小的簇

如何处理待合并的簇对的相对大小(这里主要针对求和的簇邻近度方法:如质心,Wards和组平均),有两种方法:

  • 加权(weighted)方法:平等地对待所有簇(treat all cluster equally),即赋予不同的簇中的点不同的权值
  • 不加权(unweighted)方法:考虑每个簇的大小,即赋予不同簇中的点相同的权值。

组平均方法举例

  • 加权情况下使用算术平均的非加权对组方法(UPGMA);不加权情况下WPGMA,系数如下:

    Lance-Williams公式:

3 层次聚类的优势和局限性

3.1 优势

  • 使用树状图比较直观的看到簇合并和分裂的情况
  • 无需设定簇的个数,通过在适当的水平上“切割”树状图可以获得任何我们想要的数量的簇。
  • 可以产生有意义的分类法,如系统分类学(taxonomy):动植物的分类。
  • 层次聚类的聚类算法避开了组合优化的问题,且没有局部极小问题或选择初始点的问题。Wards常用来初始化K-means,帮助其产生有效的初始质心。

3.2 局限性

  • 缺乏全局目标函数
    层次聚类是在局部的运用了邻近度函数(每一步合并的过程中)。尽管Ward方法在每一步使用“最小化误差平方和”方法来决定合并哪两个簇,但是并没有使用总SSE,并不代表总SSE最小。 现实是因为“最小化总SSE”的方法,在一般的聚类问题中, 计算是不太可行的,层次聚类的时间和空间的复杂度之高阻碍了全局目标函数的应用。

  • 合并决策是最终的
    合并两个簇的时候,虽然凝聚层次聚类可以使用所有点对的相似度信息,做出好的局部决策, 但是一旦合并两个簇之后就不能撤销,阻碍了局部最优变成全局最优。
    由于合并是最终的,所以在应用到含有噪声、高维数据(例如文档数据),会出现问题。
    簇甚至是不稳定的:簇中的点与其他簇的质心的距离,可能比它与当前所在簇的质心的距离更近。
    克服这一限制的方法:可以通过移动树的分支;使用划分聚类方法(如K-means)生成小的簇,然后再使用凝聚层次聚类。

  • 离群值(outlier)
    主要在使用Ward’s方法和质心法时候比较严重,离群值会增加SSE和扭曲质心(increase SSE and distort centroids)。在使用单链,全链和组平均的时候会稍微好一点。因为离群值outliers或者small group of outlier 会形成单点簇或者小的簇群,直到最后才与其他簇合并到一起。不过,通过舍弃这些层次聚类过程中不能和其他簇合并的单点簇或者小的簇群,就除去了离群值.。

  • 计算和存储的开销大
    层次聚类的复杂度:
    时间复杂度:每一步用于更新和搜索邻近度矩阵的计算量是N*N,总共有N步,因此在多数情况下时间复杂度是O(N^3)
    采用一些技术可以把复杂度降低:如把邻近度矩阵先存放在有序表或者堆中,加上维护堆表的开销,总复杂度可以降为O[N^2 * log(N)]
    空间复杂度O(N^2), 使用了邻近度矩阵。
    注:N是数据中点的个数。

  • 其他问题
    下面是几种层次聚类技术的优势和局限性对比:

Cluster analysis :Basic Concepts and Algorithms -- Part 3 Hierarchical Clustering相关推荐

  1. Cluster analysis :Basic Concepts and Algorithms -- Part 5 Cluster Evalation

    系列文章 Cluster analysis :Basic Concepts and Algorithms – Part 1 Overview Cluster analysis :Basic Conce ...

  2. Cluster analysis :Basic Concepts and Algorithms -- Part 1 Overview

    参考文献:(1)<Introduction to Data Mining (Second Edition)>,2018,Tan, Pang-Ning:Steinbach, Michael: ...

  3. 机器学习算法(十二):聚类(2)层次聚类 Hierarchical Clustering

    目录 1 层次聚类 1.1 层次聚类的原理 1.2 两个组合数据点间的距离: 2 自底向上的合并算法 2.1 AGNES算法 (AGglomerative NESting) 2.1.1 原理 2.1. ...

  4. 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5(二)------Basic Concepts

    看完这篇文章你会有很大收获! 好学近乎知,力行近乎仁,知耻而后勇. The previous chapter explained why it is important to build reacti ...

  5. 语音信号处理(DSP)论文优选 :提取音频pitch方法对比Performance Analysis of Several Pitch Detection Algorithms

    声明:语音信号处理(DSP)论文优选系列主要分享论文,分享论文不做直接翻译,所写的内容主要是我对论文内容的概括和个人看法.如有转载,请标注来源. 欢迎关注微信公众号:低调奋进 Performance ...

  6. 数据挖掘之聚类分析(Cluster Analysis)

    1.Motivations(目的) Identify grouping structure of data so that objects within the same group are clos ...

  7. Web应用中基于密码的身份认证机制(表单认证、HTTP认证: Basic、Digest、Mutual)

    Web应用中基于密码的身份认证机制 背景概念 认证(Authentication) 会话管理 1 表单认证(Form-Based Authentication) 1.1 介绍 1.2 流程 2 通用的 ...

  8. 聚类分析(cluster analysis)

    欢迎访问新blog页面:K-Means-Simple understanding and code implementation 一.聚类定义 聚类分析(cluster analysis)是一组将研究 ...

  9. Introduction to Graph Neural Network(图神经网络概论)翻译:Chapter2:Basic of Math and Graph

    文章目录 2 Basic of Math and Graph 2.1 Linear Algebra(线性代数) 2.1.1 Basic Concepts(基本概念) 2.1.2 EIGENDECOMP ...

最新文章

  1. 在maven项目中使用Junit进行单元测试
  2. C语言非常重要的细节(知道一点更新一点)
  3. 怎么邀请人加入组队_糖豆人:终极淘汰赛怎么玩?玩法技巧介绍
  4. python fillna,Pandas之Fillna填充缺失数据的方法
  5. git bash使用笔记
  6. DirectoryInfo类
  7. 关于百度地图js api的getCurrentPosition定位不准确的解决方法
  8. c语言如何输出字符问号,C语言入门5-键盘的输入和屏幕输出
  9. iOS NSUserDefaults 存放位置
  10. 鼠标悬停在图片上出现蒙层的方法
  11. Java集合源码解读(一):集合总体框架
  12. 4月1日起支付宝、微信扫码支付单日限额500元,够用吗?
  13. 给已有表添加字段sql
  14. 小白spss学习笔记(一)
  15. Keras中的深度学习的模型:序列模型(Sequential)和通用模型(Model)
  16. 学习通否认 QQ 号被盗与其有关:已报案;iPhone 14 量产工作就绪:四款齐发;简洁优雅的软件早已是明日黄花|极客头条
  17. 圆柱体的投影特点_机械制图常识:圆柱体
  18. 线性回归——简单线性回归、多元线性回归
  19. 【第一章 走进数据科学】袁博《数据挖掘:理论与算法》
  20. excel与云mysql连接数据库_小程序读取excel表格数据,并存储到云数据库

热门文章

  1. HTML+CSS+JS大作业:商城网购网站设计——淘宝1页
  2. 淘宝新店已经不死不活没有生意怎么办
  3. Android高手笔记-D8, R8编译优化
  4. miui修改Android,无法修改小米MIUI设备中的系统设置
  5. 主线程和子线程下的事务不回滚【spring】
  6. 云呐医疗行业条码固定资产管理系统
  7. linux系统下深度学习环境搭建和使用
  8. 将C盘的软件已经移到了D盘,为什么C盘还是会出现变红或饱满的状态?
  9. 开发类似斗鱼虎牙的运营级直播平台多少钱
  10. 信息安全——ELGamal数字签名方案的实现