聚类算法 距离矩阵_理解谱聚类
原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。
其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。
- 书的购买链接
- 书的勘误,优化,源代码资源
理解谱聚类
聚类是典型的无监督学习问题,其目标是将样本集划分成多个类,保证同一类的样本之间尽量相似,不同类的样本之间尽量不同,这些类称为簇(cluster)。与有监督的分类算法不同,聚类算法没有训练过程,直接完成对一组样本的划分。
聚类是数据分析中最常用的技术之一,应用领域包括统计,计算机科学,生物,社会科学,心理学等。在要处理经验数据的几乎所有科学领域,我们都需要通过鉴别数据中相似的样本所构成的分组来建立对数据的直观映像。这篇文章介绍谱聚类算法,是对《机器学习与应用》,清华大学出版社,雷明著一书中第18章“聚类算法”中谱聚类算法的扩充,将在第二版中出版。
谱聚类算法是聚类算法家族中相对年轻的成员。与传统的聚类算法如k-means算法、层次聚类、DBSCAN算法等相比,谱聚类具有很多优势。谱聚类算法所得到的结果经常优于传统方法,谱聚类实现起来非常简单,可以用标准的线性代数方法高效求解。
图论中的基本概念
图是离散数学和数据结构中的一个概念。一个图由顶点和边构成,任意两个节点之间可能都有边进行连接。边可以带有值信息,称为权重,例如两点之间的距离。下图是一个简单的图
![](/assets/blank.gif)
图的边可以是有向的,也可以是无向的,前者称为有向图,后者称为无向图。可以将地图表示成一个图,每个地点是顶点,如果两个地点之间有路连接,则有一条边。如果这条路是单行线,则边是有向的,否则是无向的。
顶点的度定义为该顶点所关联的边的数量,对于有向图它还分为出度和入度,出度是指从一个顶点射出的边的数量,入度是连入一个节点的边的数量。无向图可以用三元组形式化的表示:
其中V是顶点的集合,E是边的集合,w是边的权重函数,它为每条边赋予一个正的权重值。假设i和j为图的顶点,
定义顶点i的加权度为与该节点相关的所有边的权重之和,即邻接矩阵每一行元素之和
定义加权度矩阵D为一个对角矩阵,其主对角线元素为每个顶点带权重的度
其中n为图的顶点数。后面将要介绍的拉普拉斯矩阵则通过邻接矩阵,加权度矩阵计算而得到。
将聚类问题看作图切割问题
谱聚类是一种基于图的机器学习算法。基于图的算法把样本数据看作图的顶点,根据数据点之间的距离构造边,形成带权重的图,然后通过对图进行处理来完成算法所需的功能。对于聚类问题,通过图的切割实现聚类,即将图切分成多个子图,这些子图就是对应的簇。这类算法的典型代表是谱聚类算法。
谱聚类算法构造样本集的邻接图(也称为相似度图),得到图的拉普拉斯矩阵。接下来对矩阵进行特征值分解,通过对特征向量进行处理构造出簇。
算法首先根据样本集构造出带权重的图G,聚类算法的目标是将其切割成多个子图,每个子图即为聚类后的一个簇。假设图的顶点集合为V,边的集合为E。聚类算法将顶点集合切分成k个子集,它们的并集是整个顶点集
任意两个子集之间的交集为空
对于任意两个子图,其顶点集合为A和B,它们之间的切图权重定义为连接两个子图节点的所有边(即跨两个子图的边)的权重之和:
其中w是图中两个顶点之间边的权重。
切图权重可以看作两个子图之间的关联程度,如果两个子图之间没有边连接,则该值为0。从另一个角度看,这是对图进行切割时去掉的边的权重之和。
下图为图切割示意图
![](/assets/blank.gif)
上图中有7个顶点,被切割成蓝色和黄色两个子图,虚线边为被切割掉的边,因此切图权重为
2+3=5
对图顶点子集
其中
为样本集构造邻接图
对于如何从一组数据点
k近邻图。如果顶点
全连接图。简单的为所有的节点对之间建立起边,边的权重为
其中
图的拉普拉斯矩阵
谱聚类算法基于图的拉普拉斯矩阵,这是图的一种矩阵表示。没有归一化的图拉普拉斯矩阵定义为
其中W为邻接矩阵,D为加权度矩阵,它们的定义在在前面已经给出。下面介绍拉普拉斯矩阵的一些重要性质。
1.对任意的向量
2.拉普拉斯矩阵是对称半正定矩阵。
3.这个矩阵的最小特征值为0,其对应的特征向量为常向量1,即所有分量为1。
4.矩阵L有n个非负实数特征值,并且满足
下面给出证明。根据
因此结论1成立。根据结论1,显然这个矩阵是半正定的,而根据定义,矩阵是对称的的,因此结论2成立。由于
由于D是W经过各列元素累加得到的,因此行列式为0,故0是其特征值。如果
因此1是对应的特征向量。根据结论1-3可以得到结论4。
需要注意的是,根据定义,这种未归一化的拉普拉斯矩阵不依赖于邻接矩阵W的主对角线元素。除了主对角线元素之外,其他位置的元素都相等的各种不同的矩阵W都有相同的拉普拉斯矩阵。特别是,图中的自边不影响图的拉普拉斯矩阵。
未归一化的图拉普拉斯矩阵以及它的特征值,特征向量可以描述图的多种重要的性质。假设G是一个有非负权重的无向图,其拉普拉斯矩阵L的特征值0的重数k等于图的联通分量的个数
证明如下。先考虑k=1的情况,即图是联通的。假设f是特征值0的一个特征向量,根据特征值的定义有
这是因为
接下来考虑有k个联通分量的情况。不失一般性,我们假设顶点按照其所属的联通分量排序,这种情况下,邻接矩阵是分块矩阵,同样的,拉普拉斯矩阵也是这样的分块矩阵
显然每个子矩阵
有两种形式的归一化拉普拉斯矩阵,它们之间密切相关,分别定义为
在这里
1.对任意的向量
2.
3.
4.0是矩阵
5.矩阵
和未归一化的拉普拉斯矩阵类似,有下面的重要结论:
假设G是一个有非负权重的无向图,其归一化拉普拉斯矩阵
RatioCut与NCut
前面说过,需要对图切割的代价函数进行归一化。第一种方法是用图的顶点数进行归一化,由此得到优化的目标为:
其中
其中vol是图中所有顶点的加权度之和
称为NCut。这两种情况都可以转化成求解归一化后的拉普拉斯矩阵的特征值问题。假设L为图的拉普拉斯矩阵,W为邻接矩阵,D为加权度矩阵。定义归一化后的拉普拉斯矩阵为
对于RatioCut,求解的是如下特征值问题
其中n为样本数,
为方便表述,给定一个子集
根据该向量的定义有
即给定任意子图A,上面这个二次型与RatioCut的目标函数一致。另外根据f的定义有
即向量f与全1向量1正交。另外
因此向量
其中
这个问题的解是L的第二小的特征值所对应的特征向量。因为该矩阵最小的特征值是0,对应的特征向量是1。因此,第二小的特征值对应的特征向量近似是RatioCut的最优解。但是,切图所对应的结果应该是离散的,而这里得到的解是连续的,需要转换成离散的。一种解决方案是
类似于sgn函数。对于超过两个簇的情况,这种简单的阈值化不合适,此时可以将
推广到多个子图的情况,通过构造指示向量可以得到类似的优化目标。对于NCut最后求解的是如下广义特征值问题
在完成特征值分解之后,保留k个最小的特征值和它们对应的特征向量,构成一个
算法流程
根据前面得到推导可以得到具体的谱聚类算法,这里有两个版。算法1:
输入:相似度矩阵
构造相似度图,可以采用之前介绍的三种方式。假设W为带权重的邻解矩阵
计算归一化的拉普拉斯矩阵L
计算下面广义特征值问题的前k个特征向量
假设矩阵
对于i=1,...,n,假设
对这些行向量用k均值算法进行聚类,得到簇
输出:
算法2:
输入:相似度矩阵
构造相似度图,可以采用之前介绍的三种方式。假设w为带权重的邻解矩阵
计算归一化的拉普拉斯矩阵
计算矩阵
假设矩阵
对于i=1,...,n,假设
对这些行向量用k均值算法进行聚类,得到簇
输出:
参考文献
[1] Andrew Y Ng, Michael I Jordan, Yair Weiss. On Spectral Clustering: Analysis and an algorithm. neural information processing systems, 2002.
[2] Ulrike Von Luxburg. A tutorial on spectral clustering. Statistics and Computing, 2007.
[3] Shi, J. and Malik, J. Normalized cuts and image segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22 (8), 888-905. 2000.
聚类算法 距离矩阵_理解谱聚类相关推荐
- 聚类算法 距离矩阵_谱聚类
比起传统的K-means算法,谱聚类对数据分布的适应性更强,计算量也要小很多. 1. 谱聚类概述 谱聚类是从图论中演化出来,主要思想是吧所有的数据看作空间中的点,这些点之间可以用边连接起来.距离较远的 ...
- 聚类算法 距离矩阵_模糊聚类算法
模糊聚类算法 1.如何理解模糊聚类 事物间的界线,有些是明确的,有些则是模糊的.当聚类涉及到事物之间的模糊界线时,需要运用模糊聚类分析方法. 如何理解模糊聚类的"模糊"呢:假设有两 ...
- 聚类算法(六)——谱聚类 (含代码)
聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...
- 聚类算法 距离矩阵_论文阅读9——AP聚类算法
Affinity Learning for Mixed Data Clustering 论文提出了基于混合对数据进行聚类的学习框架,具体研究内容包括:1)如何处理具有混合类型属性的数据.2)如何学习数 ...
- 聚类算法 距离矩阵_机器学习基础-层次聚类
层次聚类(Hierarchical clustering) 何时使用? 当我们希望进一步挖掘观测数据的潜在关系,可以使用层次聚类算法. 工作方式 首先我们会计算距离矩阵(distance matrix ...
- 聚类算法 距离矩阵_快速且不需要超参的无监督聚类方法
论文: Efficient Parameter-free Clustering Using First Neighbor Relations Efficient Parameter-free Clust ...
- 聚类算法(五)——层次聚类 linkage (含代码)
聚类算法相关: 聚类算法(一)--DBSCAN 聚类算法(二)-- 优缺点对比 聚类算法(三)-- 评测方法1 聚类算法(三)-- 评测方法2 聚类算法(三)-- 评测方法3(代码) 聚类算法(四)- ...
- 聚类算法:Hierarchical Clustering层次聚类
1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离.每次将距离最近的点合并到同一个类.然后,再计算类与类之间的距离,将距离最近的类 ...
- 聚类算法(4)--Hierarchical clustering层次聚类
目录 一.层次聚类 1.层次聚类的原理及分类 2.层次聚类的流程 3.层次聚类的优缺点 二.python实现 1.sklearn实现 2.scipy实现 树状图分类判断 一.层次聚类 1.层次聚类的原 ...
最新文章
- Linux下清理内存和Cache方法
- 手机休眠监测wifi
- sql server 交叉表查询实例-成绩统计
- 7-4 jmu-Java-03面向对象基础-04-形状-继承 (15 分)
- 《妥协的完美主义—优秀产品经理的实践指南(卷一)》一2.4 分工常见的错误...
- 【牛客 - 331J】炫酷数学(打表猜结论,按位枚举证明)
- Zdal分库分表中间件介绍
- RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
- html5字体转换,图片转字符画html5版
- 测试工作笔记001---web测试_工作经验_注意点_随时更新
- Mac 使用命令行工具解压和压缩 rar 文件
- 在 Mac 上如何将 Better Zip 设置为自动更新?
- erdas几何校正_erdas图像几何校正操作步骤指南
- Catfish任意代码执行漏洞 0day
- Rasa课程、Rasa培训、Rasa面试系列之:Rasa 3.x rasa run actions等运行命令学习
- 《JAVA: 学习导图》
- 为何苹果电脑虚拟机如此受欢迎
- nginx启动、停止、重启命令
- 图书管理系统的c实现用于图书信息的管理。
- 1.centos7 安装murmur
热门文章
- JAXB 遇到的问题
- 有关Activity的Launch mode 以及Intent的setFlags(转载)
- mouseChildren= false
- 调整SAP系统中物料账和财务账的期间
- python 格式化工具_Google的Python代码格式化工具YAPF详解
- 高炉计算机控制,一高炉计算机控制系统升级.pdf
- 路由包含#号导致的nginx_分布式实战:Nginx缓存之OpenResty部署
- js点击按钮改变字体大小并给他颜色_如何在Elementor中修改文本的字体、大小、颜色、样式...
- liunx创建php环境变量,linux添加环境变量的方法总结
- 一人网站所有的 ip地址_咸宁网站建设-网站的主要特征