1.问题导入

2.算法出处

3.算法详解

4.算法步骤

算法全称《Locality preserving projections》出自何小飞教授论文X.He,P.Niyogi,Localitypreservingprojections,in:ProceedingsofConference
on AdvancesinNeuralInformationProcessingSystems(NIPS),2003。

改编自LE算法M.Belkin,P.Niyogi,LaplacianEigenmapsfordimensionalityreductionanddata
representation, NeuralComput.15(6)(2003)1373–1396。

1.问题导入:

降维的目的是为了缓解维数灾难,比如原始空间X=[x1,x2,...xn],每一个xi有m个维度,要将其降维到Y=[y1,y2,...,yn],每一个yi成为了m'维度(m'<<m),需要一个矩阵P,使得yi=P'X(注:这里P'表示P的转置),当m足够大的时候,对其进行内积运算就会产生内存不足的情况,特别是在处理人脸数据集,一个人脸数据集假如是100X100的(这还是一个比较小的人脸数据),reshape操作之后就会成为10000X1的,对其直接进行knn分类或者svm分类就有可能产生内存不足,而且人脸数据集中有很多冗余的信息,降维的目的就是剔除这些冗余的信息,构建一个新的坐标轴,使原始数据点能够投影到新的坐标轴上(关于投影最直接的一个例子就是pca将二维x,y轴二维数据集降维到一维的数据集,可以参考西瓜书上的说明),找到这个最优的坐标轴也就是成了降维优劣的衡量标准了(具体的衡量是降维后的数据集进行分类,比较精度,kappa系数等等)。

2.算法出处:

算法提出源自何小飞教授的论文《Locality preserving projections》,作者(Xiaofei He与Partha Niyogi)相比与PCA保留全局信息(可以解释为最大化方差,也可以解释为最小化重构误差,这两个点都可以得出pca的推导,可以参考南京大学周志华老师的著作西瓜书(全名机器学习))。

3.算法讲解:

lpp主要是通过线性近似le(这里le算法全称是Laplacian Eigenmaps),(出自论文Laplacian Eigenmaps and Spectral Techniques for Embedding and Clustering,作者是Mikhail Belkin and Partha Niyogi,都是芝加哥大学,数学与计算科学学院的,包括上面的何小飞教授,感觉他们三个人应该是师生关系,这个故事告诉我们,资源平台是一个很重要的事情,包括我后面看的一些降维的算法提出,很多都是在改进老师或者同门的角度来达到创新的idea的),算法来保留的是局部信息,比如在高维空间中,数据点xi和数据点xj是相邻关系,那么在降维空间后yi和yj必须跟其对应高维xi和xj的关系相同。也就是lpp的损失函数:

3.1此函数的物理意义是

各符号说明:

yi表示的是降维后的任意数据点i,yj表示的是降维后的任意数据点不包含i(平方表示的是任意两个点的欧氏距离也就是任意两个数据点之间的远近关系)

Wij表示的是原始空间中ij之间的距离权重系数组成的矩阵。注意这里先介绍一下Wij的构造过程,也就是说如果i和j是k近邻关系,不论是i是j的还是j是i的,都采用下面的热核函数计算方式。如下公式,不是k近邻的形式,那么Wij就等于0;

物理意义:

如果ij是近邻关系(现在假设的是降维后的空间和原始空间一样都是满足近邻关系,这里只考虑近邻关系,不考虑全局的信息),比如原始空间中i和j是比较接近的,也就是dist(xij)比较小(如果ij不是k近邻的关系,那么Wij等于零,就不需要进行计算了),那么Wij就比较大,那么为了满足min,降维后的dist(yij)就应该满足比较小的设定。相反,如果原始空间中i和j是比较远的(也就是dist(xij)比较大),那么Wij就比较小了,为了满足min,那么dist(yij)要设定为比较小的。同时,使得目标函数最小的时候就是降维效果最好的时候。

3.2公式推导:

第一步是:将欧氏距离展开;

第二部是:将权重矩阵加进去;

第三部是:分别去掉j,i这里的Dii=wij对第i行的求和,Djj是Wij对第j列的求和

第四部是:构造拉普拉斯矩阵L=D-W.

这里我没有使用xi是因为这样推导比较方便,然后转化为x的形式:

为了防止消除任意的缩放因子

最后的目标函数是:

最后转化为

4.算法步骤:

4.1:找出k近邻:

第一种是使用kesai球的形式寻找,也就是两点的欧氏距离满足小于某一约束就认定满足条件,这种kesai的取值难以把握。

第二种是直接计算xi点与xi之外的所有的点的欧氏距离,然后进行排序,找出距离最近的k个点。这种比较实在,而且使用matlab的find__nn函数可以很容易找到。

4.2计算权重:

第一个就是热核函数,这样做的目的就是当xi和xj的欧式距离比较大的时候,Wij就对应的小,同理,如果xi和xj的距离比较小,那么对应的Wij就比较大。

第二个就是简单的形式,但是这种没有很好的区分度,相当于,如果xj是xi的k近邻的形式,那么Wij就等于1,不论xj(xj泛指xi的k近邻,并不是一个实际的点)中的点与xi的距离远近都为1,就不能很好的区分,举例一维数据点(1,2,10,11),那么对于2的k2近邻来说就是1和10了,但是明显1对2的距离肯定比10对2的距离近,如果按照第一个例子,那么W12>W32的,但是如果按照第二种,W12=W32。一般在使用的时候都是采用第一种热核函数的形式。

4.3计算投影矩阵:

根据matlab自带的eig函数计算[eigvector, eigvalue] = eig(XLX',XDX')(注:这里的‘表示的是转置的意思’);

接下来还有何小飞老师的NPE,算法,以及李乔杉老师的SPP算法,都是无监督降维领域的很经典的算法。

局部保留投影算法(LPP)(Locality Preserving Projections)详解相关推荐

  1. 【机器学习】【降维】局部保持投影(LPP Locality Preserving Projections)

    文章目录 局部保持投影(LPP) 一.摘要: 二.主要思想 三.算法步骤 四.算法详解 局部保持投影(LPP) 论文:<Locality Preserving Projections>作者 ...

  2. 基于 Python 的 11 种经典数据降维算法|LPP(Locality Preserving Projections)

    LPP(Locality Preserving Projections) LPP 即局部保留投影算法,其思路和拉普拉斯特征映射类似,核心思想为通过最好的保持一个数据集的邻居结构信息来构造投影映射,但 ...

  3. 局部保留投影算法——LPP原理

    Locality Preserving Projections 一.构建邻接图 a. 设定常数ε,若两样本点距离小于ε则两点为邻近关系 b. 若点p1是点p2最近的k个点之一,则p1是p2的临近点 二 ...

  4. Laplacian Eigenmaps与LPP(Locality Preserving Projections)简介

    一.拉普拉斯特征映射(Laplacian Eigenmaps) 1.Introduction 机器学习与模式识别的一个核心问题是找到一种合适的对复杂数据的表示. 我们把这个问题叫做数据低维流形的嵌入在 ...

  5. method_LPP(Locality preserving projections)

    本文是对何晓飞老师的论文Locality Preserving Projections及其代码的一些简单j介绍,论文及代码均可以在何老师主页上下载. 一.LPP简介 线性投影映射 最优化地保存了数据集 ...

  6. 【流行学习】局部保持投影(Locality Preserving Projections)

    一.前言 局部保持投影算法(LPP)主要是通过线性近似LE(Laplacian Eigenmaps),想保留的是高维中的局部信息 二.主要步骤 具体步骤如下所示: 1.确定LPP的目标函数:min⁡1 ...

  7. 局部保留投影(LPP)推导

    流形算法的主要思想是能够学习高维空间中样本的局部邻域结构,并寻找一种子空间能够保留这种流行结构, 使得样本在投影到低维空间后,得到比较好的局部近邻关系. 所谓流形,是指高维样本空间中呈现的一种低维的局 ...

  8. 局部保留投影学习总结(LPP)

    这篇文章主要的目的是在降低空间维度的同时,能较好的保持内部固定的局部结构,并且它对异化值(通常理解为错误的点,或者为污点)不敏感,这一点可以与主成分分析法(PCA)相区别. 对于高维的空间(x1,x2 ...

  9. 机器学习基础---降维方法---局部保持投影(LPP)推导

    LPP 方法概述 核心思想 有映射Ym∗n=f(Xd∗n)\underset{m*n}{Y}=f(\underset {d*n}X)m∗nY​=f(d∗nX​),能够实现将d维的样本变换到m维空间之中 ...

最新文章

  1. 申请硕士学位不必发表论文,清华大学新规登上热搜:不把学术权力交给期刊审稿人...
  2. C语言-文件操作总结
  3. MySQL排序优化(两次排序和单次排序)
  4. “逃离”互联网:蚂蚁金服原副总裁离职,重返学术界
  5. python web开发第三方库_Python Web开发中常用的第三方库
  6. 苹果6s怎么连不上服务器未响应,iphone6s无法连接app store 苹果6s连不上app store解决方法...
  7. 大航海商务助理更新1.24
  8. createprocess失败代码2_pytest文档57单元测试代码覆盖率(pytestcov)
  9. 重磅!MobileNetV3 来了!
  10. ArcGIS Server 开发系列(一)--编程框架总览
  11. Javascript特效:普通轮播图
  12. html可编辑下拉选项卡,bootstrap可编辑下拉框jquery.editable-select
  13. Column ‘XXX‘ not found完美解决
  14. Qt+OpenCV在arm板上运行实现思路
  15. visual studio 提高速度的选项
  16. 网络信息安全:五、GRE和IPSEC
  17. 208计算机领域,中医药大学-计算机基础208版-1-7次作业.doc
  18. PHP单例模式与常驻内存(总结)
  19. 【夏目鬼鬼分享】SpringBoot2.0整合mybatis
  20. kubernetes1.4 基础篇:Learn Kubernetes 1.4 by 6 steps(3):Step 2. Using kubectl to Create a Deployment

热门文章

  1. 附录H-2 技术预研报告
  2. Apple pencil 无法连接到ipad的解决办法汇总
  3. Euler公式求解微分方程
  4. 家装与家电的碰撞,三星电视诠释“新春换新”的“新选择”
  5. Vue之导出xlsx
  6. Django学习笔记(3):使用模型类进行查询(查询函数、F对象、Q对象、聚合函数、查询集、模型类关系、关联查询、自关联、管理器)
  7. 怎样让公司全员贡献结构化内容?
  8. There are no enabled repos. Run “yum repolist all“ to see the repos you have. You can enable repos问题
  9. cad怎么选择一个对象打散vba_CADVBA中的选择集过滤.doc
  10. 移动版rtx 4060和RX7600M XT差距 rtx4060和RX7600M XT参数对比