热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

谱聚类:直觉以及背后的数学原理

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:NeerjaDoshi编译:ronghuaiyang导读谱聚

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Neerja Doshi

编译:ronghuaiyang

导读

谱聚类,了解直觉以及背后的数学原理

什么是聚类?

聚类是一种广泛使用的无监督学习方法。聚类是这样分组的:集群中的点彼此相似,而与其他集群中的点不太相似。因此,如何在数据中寻找模式并为我们分组取决于算法,根据使用的算法,我们可能最终得到不同的集群。

有两种广泛使用的聚类方法:

  1. 紧密性——相互靠近的点落在同一个集群中,并且在紧密聚集在集群中心周围。这种密切的关系可以用观测值之间的距离来衡量。比如:k—means聚类

  2. 连接性——相互连接或相邻的点放在同一个集群中。即使两点之间的距离更小,如果它们不相连,它们也不会聚集在一起。谱聚类是遵循这种方法的一种技术。

两者之间的区别可以很容易地通过这个例子来说明:

640?wx_fmt=png

谱聚类如何工作?

在谱聚类中,数据点被视为图的节点。因此,集群被视为一个图的分割问题。然后将节点映射到一个低维空间,该空间可以很容易地进行隔离,从而形成集群。需要注意的重要一点是,没有对集群的形状/形式做任何假设。

谱聚类的步骤有哪些?

谱聚类包括三个步骤:

  1. 计算相似图

  2. 将数据投影到低维空间

  3. 创建集群

步骤1—计算相似图

我们首先创建一个无向图G = (V, E),顶点集V = {v1, v2,…,vn} = 1,2,…,n个数据中的观察值。这可以用一个邻接矩阵来表示,该矩阵将每个顶点之间的相似性作为其元素。要做到这一点,我们可以计算:

  1. ε-neighborhood图:这里我们连接所有两两距离小于ε的点。所有连接的点之间的距离大致都是相同的尺度(最多是ε),对边进行加权不会包含进图中数据的更多的信息,因此,ε-neighborhood图通常被认为是一个无权重的图。

  2. KNN图:这里我们使用K最近邻来连接顶点vi和顶点vj,如果vjvi的K个最近邻中,我们就把vivj连接起来。但是有个问题,最近邻可能不是对称的,也就是说如果有一个顶点vivj为最近邻,那么vi不一定是vj的最近邻。因此,我们最终得到一个有向图,这是一个问题,因为我们不知道在这种情况下,两点之间的相似性意味着什么。有两种方法可以使这个图变成无向图。

    第一种方法是直接忽略边缘的方向,即如果vivj的k近邻中,或者如果vjvi的k近邻中,我们用无向边连接vivj。得到的图通常称为k近邻图。

    第二个选择是连接vivj互为k近邻点的情况,得到的图称为相互k近邻图。

    在这两种情况下,在连接适当的顶点后,我们通过相邻点的相似性对边进行加权。

  3. 全连接图:为了构造这个图,我们简单地将所有点连接起来,并通过相似性sij对所有边进行加权。该图应该对局部邻域关系进行建模,因此使用了高斯相似函数等相似函数。

640?wx_fmt=png

这里的参数σ控制邻域的宽度,类似于ε-neighborhood图中的参数ε。

因此,当我们为这些图中的任意一个创建邻接矩阵时,当点很近时Aij ~ 1,当点很远时Aij→0。

考虑一下拥有1~4节点的图,权值(或相似度)wij及其邻接矩阵:

640?wx_fmt=png

步骤2—将数据投影到低维空间

正如我们在图1中所看到的,相同集群中的数据点可能也很远—甚至比不同集群中的数据点还要远。我们的目标是空间转换,当这两个点很近的时候,它们总是在同一个集群中,当它们很远的时候,它们是在不同的集群中。我们需要把观测结果投射到低维空间。为此,我们计算图的拉普拉斯矩阵,这只是图的另一种矩阵表示形式,对于查找图的有趣的属性非常有用。这可以计算为:

640?wx_fmt=png

计算图的拉普拉斯矩阵

640?wx_fmt=png


我们上面例子的图的拉普拉斯矩阵


计算图的拉普拉斯矩阵L的全部目的是找到它的特征值和特征向量,以便将数据点嵌入低维空间。现在,我们可以继续查找特征值。我们知道:

640?wx_fmt=png

640?wx_fmt=png

我们考虑下面的例子:

640?wx_fmt=png

我们计算L的特征值和特征向量。

步骤3—创建集群

对于这一步,我们使用对应于第二个特征值的特征向量来为每个节点赋值。计算时,第二个特征值为0.189,对应的特征向量v2 =[0.41, 0.44, 0.37, -0.4, -0.45, -0.37]。

为了得到2聚类(2个不同的聚类),我们首先将v2的每个元素分配给节点,例如{node1:0.41, node2:0.44,…node6: -0.37}。然后,我们对节点进行拆分,使值为> 0的所有节点都位于一个集群中,而所有其他节点都位于另一个集群中。因此,在本例中,我们在一个集群中得到节点1、2和3,在第二个集群中得到节点4、5和6。

需要注意的是,第二个特征值表示图中节点的紧密连接程度。对于好的、干净的划分,降低第2个特征值,让聚类变得更好。

640?wx_fmt=png

特征向量v2给出一个2分聚类


对于k聚类,我们需要修改拉普拉斯矩阵,对它进行归一化

我们得到:

640?wx_fmt=png


归一化的拉普拉斯矩阵


640?wx_fmt=png

谱聚类的优缺点

优点:

  1. 没有对聚类的统计数据做出强有力的假设——聚类技术(如K-Means聚类)假设分配给聚类的点围绕聚类中心是球形的。这是一个强有力的假设,可能并不总是相关的。在这种情况下,谱聚类有助于创建更精确的聚类。

  2. 易于实现,聚类效果好。它可以正确地将实际属于同一簇但由于维数减少而比其他簇中的观测值更远的观测值进行聚类。

  3. 对于几千个元素的稀疏数据集,速度相当快。

缺点:

  1. 在最后一步中使用K-Means聚类意味着聚类并不总是相同的。它们可能随初始中心的选择而变化。

  2. 对于大型数据集来说,计算开销很大——这是因为需要计算特征值和特征向量,然后我们必须对这些向量进行聚类。对于大型、密集的数据集,这可能会大大增加时间复杂度。

640?wx_fmt=png—END—

英文原文:https://towardsdatascience.com/spectral-clustering-82d3cff3d3b7

640?wx_fmt=jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧!640?wx_fmt=gif


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 本文介绍了开关稳压器设计中PCB布局布线的重要性,并提供了相应的准则。开关稳压器作为一种高效的电源,逐渐取代了线性稳压器。开关模式电源的工作原理是通过一定的开启时间和关闭时间来实现电压转换。开关频率并不是影响系统的最大因素,而开关转换的速度才是关键。在系统噪声方面,开关频率或其谐波可能会对系统产生影响。严格遵守PCB布局布线的准则,可以将开关模式电源的相关问题降到最小。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
author-avatar
梁琦rx1987_865
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有