拉普拉斯矩阵/映射/聚类
来源:互联网 发布:软件外包接单 编辑:程序博客网 时间:2024/06/05 18:02
原文地址
拉普拉斯矩阵是个非常巧妙的东西,它是描述图的一种矩阵,在降维,分类,聚类等机器学习的领域有很广泛的应用。
什么是拉普拉斯矩阵
拉普拉斯矩阵
先说一下什么是拉普拉斯矩阵,英文名为Laplacian matrix,其具体形式得先从图说起,假设有个无向图如下所示,
其各个点之间的都有相应的边连接,我们用某个指标(这地方可以任意选择,比如欧氏距离、测地距离、或者高斯相似度等)来衡量两个点的相似度,表示为
拉普拉斯矩阵的性质
性质:
(1)
(2)
(3)对
(4)对于任意一个属于实向量
它又有什么用处呢?跟目标是有关系的,哈哈~
证明如下:
因为
拉普拉斯特征映射
拉普拉斯特征映射将处于流形上的数据,在尽量保留原数据间相似度的情况下,映射到低维下表示。
其步骤如下:
1. 构造近邻图(用近邻图图近似流形)
1.1 近邻条件
1.2 K近邻
2. 计算边权重(即样本间相似度)
2.1 热核
2.2 简单形式
3. 特征映射
求解
得到解如下:(特向和特值)
取小的前
至于为神马
倒腾了一大通,终于把为什么目标
具体解释如下图所示:(左侧是基本思路,中间是核心推导,右侧是直观理解)
但是还有个问题没有解决,就是为什么
只能从直觉上理解,
为什么是用广义特征值
拉普拉斯映射就是直接在低维下找到样本,使得所有样本保持原来的相似度。
应用于降维
求解广义特征向量,取前几个非零最小特值对应的特向,即为原数据在低维下的表示。
应用于聚类
三个概念:
(1)对于邻接矩阵,定义图中A子图与B子图之间的所有边的权重之和为:
(2)与某点的所有边的权重和定义为该顶点的度
(3)Graph Cut,就是把一个图的一些边切断,把一个图变为若干独立的子图,而这些被切断的边的权重之和称为Cut值。
对于如下图,我们想找到某个割把整个图分成两个子图。
上面的割会把孤立节点分割出来,为避免这种情况,出现了RatioCut以及NormalizedCut:
其中
谱聚类,由最小割入手,转换到最小化二次型求解,其中包含了拉普拉斯映射降维的思想。
例如,取
则
Rayleigh quotient(瑞利商)
其最大值和最小值分别等于矩阵
因此,最小化割问题,也就变成了找
我们想把原图分成两个子图,肯定找到一个最小割对应的特向即可,那么要是想分成3个子图,那就需要最小割和次小割所对应的特向解即可。(这个地方这样理解会直观一些,最小割对应的特向是降维后包含分割为两个子图的信息,而最小割加次小割对应的特向则是包含分割为3个子图的信息)聚几类,则取前几个最小非零特值对应的特向的意义就在于此。
谱图理论需要找个时间看看。
小结
1)拉普拉斯矩阵是一种图的矩阵表示。
2)拉普拉斯映射是在保持原流形数据相似度的情况下,直接降维到低维空间。
3)谱聚类是通过最小割,刚好借助了拉普拉斯映射的思想,从而用携带切割信息的特向来表征原流形数据,再去聚类。(相比于传统聚类,谱聚类更侧重于数据相似度信息的保留,更具有针对性,计算效率也更高)
三者紧密联系,又不能混为一谈。
几个参考:
1)化二次型为标准型
http://student.zjzk.cn/course_ware/web-gcsx/gcsx/chapter5/chapter5_2_1.htm
2)一个关于拉普拉斯矩阵的博客
http://blog.sciencenet.cn/blog-261330-751483.html
3)一个谱聚类的博客
http://blog.pluskid.org/?p=287
4)广义特征值的介绍
http://webcache.googleusercontent.com/search?q=cache:_85fSHsIv3MJ:https://zh.wikipedia.org/zh-cn/%25E7%2589%25B9%25E5%25BE%2581%25E5%2590%2591%25E9%2587%258F+&cd=1&hl=zh-CN&ct=clnk&gl=cn&lr=lang_en%7Clang_zh-CN%7Clang_zh-TW
- 拉普拉斯矩阵/映射/聚类
- 拉普拉斯矩阵/映射/聚类
- 拉普拉斯矩阵
- 拉普拉斯矩阵
- 拉普拉斯矩阵
- 拉普拉斯矩阵
- 拉普拉斯矩阵
- 拉普拉斯矩阵及谱聚类
- 拉普拉斯矩阵及谱聚类
- 谱聚类与拉普拉斯矩阵
- 拉普拉斯矩阵推导
- graph Laplacian 拉普拉斯矩阵
- 拉普拉斯矩阵到谱聚类
- Laplacian Eigenmaps 拉普拉斯特征映射
- 从拉普拉斯矩阵说到谱聚类
- 从拉普拉斯矩阵说到谱聚类
- 从拉普拉斯矩阵说到谱聚类
- 从拉普拉斯矩阵说到谱聚类
- 本渣的Python学习之路——1(replay)
- (二)蓝牙低功耗(BLE)基础教程--基于nRF5x系列SOC
- 堆排序(heap sort)
- 问题 : 数组中和等于K的数对
- 算法与数据结构
- 拉普拉斯矩阵/映射/聚类
- Linux系统启动过程
- python的yield使用
- 一:ubuntu14.04下配置OpenCV3.3.0和Python2.7
- CodeForces
- 转载:git概念 原理 使用
- 链表的基本操作
- 把数字字符串(带有小数点)转化为整型(浮点型)
- SpringMVC第七篇【RESTful支持、拦截器】