四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
高维数据降维算法综述与评估

高维数据降维算法综述与评估数据的维度是指在描述每个数据点的特征数量,对于现在越来越流行的大规模数据分析来说,数据的维度往往非常高。
例如,在机器学习领域中,每个数据点非常复杂,可能包含了几百上千个特征,那么就需要对高维数据进行降维处理。
在这篇文章中,我们将综述和评估几种常见的高维数据降维算法。
一、主成分分析(PCA)主成分分析(PCA)是一种最常用的线性降维技术,它可以将高维数据投影到一个低维空间中,并保留最大方差。
PCA的主要思想是通过找到方差最大的数据维度,然后再找到与之正交的方差次大的维度,以此类推,直至找到需要的维度。
PCA的优点在于它非常快,简单易懂,适用于大多数数据集。
但它的缺点在于,PCA只能发现主要的线性结构,不能处理非线性结构。
二、流形学习流形学习是一类非线性降维技术,它的主要思想是将高维数据投影到低维空间中,并保持数据在低维空间中的局部结构和相对距离。
常用的流形学习方法有等距映射(Isomap)、局部线性嵌入(LLE)和拉普拉斯特征映射(LE)。
等距映射(Isomap)使用了图论中的最短路径算法来测量数据之间的相似性,然后在低维空间中重构相似度。
局部线性嵌入(LLE)假设数据分布在一个局部线性结构上,然后在降维后的低维空间中重构数据的局部线性关系。
拉普拉斯特征映射(LE)则是将数据点和他们邻居之间的相似度作为权重来计算特征向量,然后用这些特征向量来降维数据。
流形学习的优点在于它可以处理非线性结构,并保留数据的局部结构,但它的缺点在于,它对于训练集的密度和噪声非常敏感,并且它的计算复杂度比较高。
三、独立成分分析(ICA)独立成分分析(ICA)是一种非线性降维技术,它的主要思想是找到独立成分,并将其用作新的维度。
在ICA中,我们假设数据由多个独立的成分线性组合而成。
ICA的优点在于它可以发现数据中的非高斯结构,并且对于噪声和异常值有一定的鲁棒性。
但它的缺点在于,它对于成分数量有一定的假设,并且在计算成分时比较耗时。
机器学习中的降维方法综述

机器学习中的降维方法综述降维是机器学习中常用的一种方法,它可以用来减少数据集中的特征数量,从而降低计算复杂度,提高算法的效率,并且可以帮助我们更好地理解数据和发现数据中的隐藏模式。
在本文中,我们将综述机器学习中常用的降维方法。
一、主成分分析(PCA)主成分分析是一种常见的无监督降维方法,它通过线性变换将原始数据映射到一个新的坐标系中,新的坐标系下数据的方差最大化。
这样,我们可以通过保留最大方差的特征来实现降维。
主成分分析具有简单易懂的数学表达式和计算方法,被广泛应用于数据预处理和特征提取。
二、线性判别分析(LDA)线性判别分析是一种有监督降维方法,它也是通过线性变换将原始数据映射到一个新的坐标系中。
与主成分分析不同的是,线性判别分析考虑了类别信息,通过最大化类间散度和最小化类内散度来实现降维。
线性判别分析在特征提取和模式识别任务中表现出色。
三、独立成分分析(ICA)独立成分分析是一种非线性降维方法,它假设观测数据是由多个独立的成分线性组合而成的。
通过分离出这些独立成分,我们可以实现降维和信号分离。
独立成分分析在信号处理、盲源分离和图像处理等领域得到了广泛的应用。
四、核主成分分析(KPCA)核主成分分析是对主成分分析的非线性扩展,它通过使用核函数将原始数据映射到一个高维特征空间中,然后再进行主成分分析。
这样,我们可以通过非线性变换实现更高维度的特征提取和降维。
核主成分分析在图像识别和模式分类等任务中表现出色。
五、局部线性嵌入(LLE)局部线性嵌入是一种基于流形学习的降维方法,它通过保持原始数据的局部线性关系来实现降维。
局部线性嵌入可以更好地处理非线性关系和局部结构,是用于可视化和数据压缩的一种有效方法。
六、t-SNEt-SNE是一种基于概率分布的降维方法,它通过优化目标函数来实现降维。
t-SNE可以比较好地保留数据中的局部结构和相似性,是一种常用的用于高维数据可视化的方法。
除了上述方法,还有许多其他的降维方法,如因子分析、多维缩放、稀疏编码等。
机器学习技术中的特征压缩方法

机器学习技术中的特征压缩方法特征压缩方法是机器学习中的一项重要技术,用于减少特征维度,提高模型性能和效率。
特征压缩方法通过保留数据中最重要的特征信息,并丢弃冗余和不相关的特征,从而实现数据的简化和处理的高效性。
本文将介绍几种常用的特征压缩方法,包括主成分分析(PCA)、线性判别分析(LDA)和自编码器(Autoencoder)。
首先,主成分分析(PCA)是一种常用的无监督特征压缩方法。
它通过线性变换将原始特征映射到一个新的特征空间上,新特征是原始特征的线性组合。
PCA的目标是找到一个新的特征空间,使得在新特征上数据的方差最大化。
具体而言,PCA计算协方差矩阵,然后对协方差矩阵进行特征分解,得到特征值和对应的特征向量。
通过选择最大的特征值对应的特征向量,我们可以得到最佳的特征子集。
这样,我们就可以将原始特征映射到新的低维特征空间上,从而实现特征压缩。
其次,线性判别分析(LDA)是另一种常用的特征压缩方法,它主要用于分类问题。
与PCA不同的是,LDA是一种有监督的特征压缩方法,它考虑了类别信息。
LDA的目标是找到一个新的特征空间,使得在新特征上的类间方差最大化,而类内方差最小化。
具体而言,LDA计算类间散度矩阵和类内散度矩阵,然后对它们进行特征分解,得到特征值和对应的特征向量。
通过选择最大的特征值对应的特征向量,我们可以得到最佳的特征子集。
这样,我们就可以将原始特征映射到新的低维特征空间上,并且保留了最具有判别性的特征。
最后,自编码器(Autoencoder)是一种无监督学习方法,可以实现非线性的特征压缩。
它由一个编码器和一个解码器组成,其中编码器将输入样本映射到一个低维特征空间,解码器将低维特征映射回原始特征空间。
自编码器的目标是最小化重构误差,即使得解码器的输出尽可能接近输入样本。
通过训练自编码器,我们可以学习到一个合适的特征表示,从而实现特征压缩。
特征压缩方法在机器学习领域中具有广泛的应用。
通过减少特征维度,特征压缩方法可以提高模型训练的效率和预测的准确性。
常见监督学习聚类集成降维推荐算法汇总(一)监督学习

常见监督学习聚类集成降维推荐算法汇总(一)监督学习1.线性回归:线性回归是一种用于建立线性模型的监督学习算法,在给定输入和输出之间建立一个线性关系,用于预测连续型输出。
它的目标是找到一条最佳拟合直线来描述输入和输出之间的关系。
2.逻辑回归:逻辑回归是一种用于建立分类模型的监督学习算法,用于预测二元型输出。
它通过将线性回归的结果经过一个激活函数转换为概率值,从而进行分类预测。
3.支持向量机:支持向量机是一种用于二分类和多分类的监督学习算法。
它通过将样本映射到高维特征空间中,构建一个超平面来实现对样本的划分。
其目标是找到一个最优的划分超平面,使得距离最近的样本点到超平面的间隔最大。
4.决策树:决策树是一种基于树形结构的监督学习算法,用于建立分类和回归模型。
它通过对特征进行划分,采用自顶向下的贪心策略构建决策树,从而实现对数据的分类和预测。
5.随机森林:随机森林是一种集成学习方法,通过构建多个决策树并对其结果进行综合来实现分类和回归。
每个决策树都是基于随机选择的样本和特征构建的,最终输出通过投票或平均等方式进行集成。
6.朴素贝叶斯:朴素贝叶斯是一种基于贝叶斯定理的分类算法,它假设特征之间相互独立,通过计算先验概率和条件概率来进行分类预测。
朴素贝叶斯算法简单快速,常用于文本分类等任务。
聚类是一种无监督学习算法,用于将数据集中的样本划分为多个类别或簇,使得同一类别内的样本相似度高,不同类别之间的样本相似度低。
常见的聚类算法包括K-means聚类、层次聚类、DBSCAN等。
1. K-means聚类:K-means聚类是一种划分聚类算法,通过迭代计算样本到聚类中心的距离,并将样本划分到距离最近的聚类中心所对应的类别中。
它的目标是最小化样本与聚类中心的距离总和。
2.层次聚类:层次聚类是一种基于层次性的聚类算法,通过合并或分割样本来构建聚类树。
它可以根据样本之间的相似度构建凝聚式聚类树或分裂式聚类树,并通过剪枝来确定最终的聚类结果。
四大机器学习降维算法:PCA、LDA、LLE、Laplacian-Eigenmaps

四大机器学习降维算法:PCA、LDA、LLE、Laplacian-Eigenmaps机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。
降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。
y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。
f可能是显式的或隐式的、线性的或非线性的。
目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据。
之所以使用降维后的数据表示是因为在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少冗余信息所造成的误差,提高识别(或其他应用)的精度。
又或者希望通过降维算法来寻找数据内部的本质结构特征。
在很多算法中,降维算法成为了数据预处理的一部分,如PCA。
事实上,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。
主成分分析算法(PCA)Principal Component Analysis(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。
可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。
(实际上就是最接近原始数据,但是PCA并不试图去探索数据内在结构)设n维向量w为目标子空间的一个坐标轴方向(称为映射向量),最大化数据映射后的方差,有:其中m是数据实例的个数,xi是数据实例i的向量表达,x拔是所有数据实例的平均向量。
定义W为包含所有映射向量为列向量的矩阵,经过线性代数变换,可以得到如下优化目标函数:其中tr表示矩阵的迹,A是数据协方差矩阵。
机器学习模型的特征提取技巧

机器学习模型的特征提取技巧特征提取是机器学习中至关重要的一步,它涉及将原始数据转化为可供机器学习算法使用的特征向量。
正确选择和提取特征对于模型的准确性和性能至关重要。
本文将介绍几种常用的机器学习模型特征提取技巧。
一、主成分分析(PCA)主成分分析是一种常用的无监督降维技术。
它可以将高维数据集转换为低维表示,同时保留最重要的信息。
通过找到数据中的主成分,可以将数据中的变化最大化的投影到新的坐标系中。
二、线性判别分析(LDA)线性判别分析是一种有监督的降维方法,主要用于分类任务。
LDA 通过将数据投影到低维空间,使得投影后的数据在类内方差最小、类间方差最大。
它能够提取出最能区分不同类别的特征。
三、自编码器(Autoencoder)自编码器是一种无监督学习方法,它通过将输入数据压缩为一个较低维度的表示,并通过重构输入数据的方式进行训练。
自编码器选取的低维表示可以被用作特征向量,用于后续的机器学习任务。
四、深度卷积神经网络(DCNN)深度卷积神经网络是一种擅长图像处理的神经网络结构。
它通过多层卷积、池化和全连接层,可以从原始图像中提取出高层次的抽象特征。
这些特征可以被用于图像分类、目标检测、图像生成等任务。
五、词袋模型(Bag-of-Words)词袋模型是一种常用的文本特征提取方法。
它将文本中的单词转化为一个固定长度的向量,忽略了单词在文本中的顺序。
通过统计每个单词在文本中的出现次数或使用TF-IDF值,可以得到一个表示文本的特征向量。
六、Word2VecWord2Vec是一种用于将单词表示为实数向量的技术。
它通过学习上下文中单词的分布模式,将单词映射到一个低维向量空间中。
Word2Vec可以捕捉到词语之间的语义和关联关系,成为了自然语言处理任务中重要的特征提取方法。
综上所述,特征提取是机器学习模型中至关重要的一步。
本文介绍了几种常用的特征提取技巧,包括主成分分析、线性判别分析、自编码器、深度卷积神经网络、词袋模型和Word2Vec。
人工智能开发技术中的特征提取和降维方法

人工智能开发技术中的特征提取和降维方法在人工智能发展的过程中,特征提取和降维方法扮演着重要的角色。
特征提取是指从原始数据中寻找有效、可区分的特征以供后续处理和分析使用。
而降维方法则是对高维数据进行处理,将数据从高维空间映射到低维空间中,以提高计算效率和减少存储空间的占用。
本文将介绍几种常见的特征提取和降维方法,并探讨其在人工智能开发中的应用。
一、特征提取方法1. 统计特征提取统计特征提取是一种基于统计学的方法,通过对数据的统计分析来提取有信息量的特征。
常用的统计特征包括均值、方差、标准差等。
在图像处理中,可以通过计算图像的灰度直方图、颜色直方图等统计特征来描述图像的特性。
在语音识别中,可以通过计算声谱图、能量谱等统计特征来提取语音的特征。
2. 滤波器方法滤波器方法是一种通过滤波器对数据进行处理来提取特征的方法。
常用的滤波器有高通滤波器、低通滤波器、带通滤波器等。
在图像处理中,可以通过对图像进行不同的滤波器处理来提取边缘、纹理等特征。
在语音信号处理中,可以使用滤波器来去除噪声、增强语音信号。
3. 主成分分析(PCA)主成分分析是一种常用的线性降维方法,通过线性变换将高维数据映射到低维空间中。
在主成分分析中,通过计算数据协方差矩阵的特征向量,选择其对应的前几个特征向量作为新的特征空间。
主成分分析具有保留数据主要信息的特点,广泛应用于人脸识别、图像压缩等领域。
二、降维方法1. 线性判别分析(LDA)线性判别分析是一种常用的降维方法,与主成分分析类似,都是通过线性变换将高维数据映射到低维空间中。
但与主成分分析不同的是,线性判别分析主要关注的是数据类别间的可分性。
通过最大化类间散度和最小化类内散度,找到最佳投影方向,以保持最大的类别差异性。
线性判别分析常用于模式识别、人脸识别等领域。
2. 流形学习(Manifold Learning)流形学习是一种非线性降维方法,通过保持数据样本的局部关系来进行降维。
流形学习的基本思想是假设数据分布在一个低维流形上,通过学习流形的结构来进行降维。
降维算法一览

降维算法⼀览在机器学习中经常会碰到⼀些⾼维的数据集,⽽在⾼维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习⽅法共同⾯临的严重问题,称之为“ 维度灾难 ”。
另外在⾼维特征中容易出现特征之间的线性相关,这也就意味着有的特征是冗余存在的。
基于这些问题,降维思想就出现了。
降维就是指采⽤某种映射⽅法,将原⾼维空间中的数据点映射到低维度的空间中。
通过降维,可以⽅便数据可视化+数据分析+数据压缩+数据提取等。
降维⽅法架构降维⽅法主要包括线性⽅法和⾮线性⽅法。
特征降维经常会和特征选择混淆。
实际上,特征选择和传统的特征降维有⼀定的区别。
特征降维本质上是从⼀个维度空间映射到另⼀个维度空间,特征的多少并没有减少,当然在映射的过程中特征值也会相应的变化。
特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后不改变值,但是选择后的特征维数肯定⽐选择前⼩,毕竟我们只选择了其中的⼀部分特征。
这⾥我们主要讲述映射⽅法,对于特征选择,我们会在后⾯进⾏详细的阐述。
PCAPCA(Principal Component Analysis),即主成分分析⽅法,是⼀种使⽤最⼴泛的数据降维算法。
PCA通过线性变换将原始数据变换为⼀组各维度线性⽆关的表⽰,提取数据的主要特征分量,常⽤于⾼维数据的降维。
PCA有两种通俗易懂的解释:(1)最⼤⽅差理论;(2)最⼩平⽅误差。
下⾯主要从最⼤⽅差理论出发,推导出表达式最⼤⽅差理论PCA的⽬标可认为是最⼤化投影⽅差,也就是让数据在主轴上投影的⽅差最⼤。
对于给定的⼀组数据点{v1,v2,…,v n},其中所有向量均为列向量,对其进⾏中⼼化,表⽰为{x1,x2,…,x n}。
可得向量x i在w(单位⽅向向量)上的投影坐标可以表⽰为(x i,w)=x T i w,因此我们的⽬标是找到⼀个投影⽅向w,使得{x1,x2,…,x n}在w上的投影⽅差尽可能⼤。
因为投影之后的均值为0,因此⽅差可以表⽰为:D(x)=1nn∑i=1(x T i w)T x T i w=1nn∑i=1w T x i x i T w=w T(1nn∑i=1x i x T i)w其中,1n∑ni=1x i x T i为样本协⽅差矩阵,令为∑,另外由于w是单位⽅向向量,即w T w=1,因此⽬标可写作:{max引⼊拉格朗⽇乘⼦,对w求导令其为0,可以推出∑w=λw,此时D(x)=w^T∑w=λw^T w=λ即,x投影后⽅差即协⽅差矩阵的特征值,最佳投影⽅向就是最⼤特征值对应的特征向量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。
降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。
y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。
f可能是显式的或隐式的、线性的或非线性的。
目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据。
之所以使用降维后的数据表示是因为在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少冗余信息所造成的误差,提高识别(或其他应用)的精度。
又或者希望通过降维算法来寻找数据内部的本质结构特征。
在很多算法中,降维算法成为了数据预处理的一部分,如PCA。
事实上,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。
主成分分析算法(PCA)
Principal Component Analysis(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。
可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。
(实际上就是最接近原始数据,但是PCA并不试图去探索数据内在结构)
设n维向量w为目标子空间的一个坐标轴方向(称为映射向量),最大化数据映射后的方差,有:
其中m是数据实例的个数,xi是数据实例i的向量表达,x拔是所有数据实例的平均向量。
定义W为包含所有映射向量为列向量的矩阵,经过线性代数变换,
可以得到如下优化目标函数:
其中tr表示矩阵的迹,
A是数据协方差矩阵。
容易得到最优的W是由数据协方差矩阵前k个最大的特征值对应的特征向量作
为列向量构成的。
这些特征向量形成一组正交基并且最好地保留了数据中的信息。
PCA的输出就是Y = W‘X,由X的原始维度降低到了k维。
PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影
方向上的数据方差的大小来衡量该方向的重要性。
但是这样投影以后对数据的区分作用并不大,反而可能使得数据点揉杂在一起无法区分。
这也是PCA存在的最大一个问题,这导致使用PCA在很多情况下的分类效果并不好。
具体可以看下图所示,若使用PCA将数据点投影至一维空间上时,PCA会选择2轴,这使得原本很容易区分的两簇点被揉杂在一起变得无法区分;而这时若选择1轴将会得到很好的区分结果。
Discriminant Analysis所追求的目标与PCA不同,不是希望保持数据最多的信息,而是希望数据在降维后能够很容易地被区分开来。
后面会介绍LDA的方法,是另一种常见的线性降维方法。
另外一些非线性的降维方法利用数据点的局部性质,也可以做到比较好地区分结果,例如LLE,Laplacian Eigenmap等。
以后会介绍。
LDA
Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一种有监督的(supervised)线性降维算法。
与PCA保持数据信息不同,LDA是为了使得降维后的数据点尽可能地容易被区分!
假设原始数据表示为X,(m*n矩阵,m是维度,n是sample的数量)
既然是线性的,那么就是希望找到映射向量a,使得a‘X后的数据点能够保持以下两种性质:
1、同类的数据点尽可能的接近(within class)
2、不同类的数据点尽可能的分开(between class)
所以呢还是上次PCA用的这张图,如果图中两堆点是两类的话,那么我们就希望他们能够投影到轴1去(PCA结果为轴2),这样在一维空间中也是很容易
区分的。
接下来是推导,因为这里写公式很不方便,我就引用Deng Cai老师的一个ppt 中的一小段图片了:
思路还是非常清楚的,目标函数就是最后一行J(a),μ(一飘)就是映射后的中心用来评估类间距,s(一瓢)就是映射后的点与中心的距离之和用来评估类内距。
J(a)正好就是从上述两个性质演化出来的。
因此两类情况下:
加上a’a=1的条件(类似于PCA)
可以拓展成多类:
以上公式推导可以具体参考pattern classification书中的相应章节,讲fisher discirminant的
OK,计算映射向量a就是求最大特征向量,也可以是前几个最大特征向量组成矩阵A=[a1,a2,….ak]之后,就可以对新来的点进行降维了:y = A’X(线性的一个好处就是计算方便!)
可以发现,LDA最后也是转化成为一个求矩阵特征向量的问题,和PCA很像,事实上很多其他的算法也是归结于这一类,一般称之为谱(spectral)方法。
线性降维算法我想最重要的就是PCA和LDA了,后面还会介绍一些非线性的方法。
局部线性嵌入(LLE)
Locally linear embedding(LLE)是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。
LLE可以说是流形学习方法最经典的工作之一。
很多后续的流形学习、降维方法都与LLE有密切联系。
见图1,使用LLE将三维数据(b)映射到二维(c)之后,映射后的数据仍能保持原有的数据流形(红色的点互相接近,蓝色的也互相接近),说明LLE有效地保持了数据原有的流行结构。
但是LLE在有些情况下也并不适用,如果数据分布在整个封闭的球面上,LLE 则不能将它映射到二维空间,且不能保持原有的数据流形。
那么我们在处理数据中,首先假设数据不是分布在闭合的球面或者椭球面上。
图1 LLE降维算法使用实例
LLE算法认为每一个数据点都可以由其近邻点的线性加权组合构造得到。
算法的主要步骤分为三步:(1)寻找每个样本点的k个近邻点;(2)由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;(3)由该样本点的局部重建权值矩
阵和其近邻点计算出该样本点的输出值。
具体的算法流程如图2所示:
图2 LLE算法步骤
Laplacian Eigenmaps 拉普拉斯特征映射
继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps。
其实不是说每一个算法都比前面的好,而是每一个算法都是从不同角度去看问题,因此解决问题的思路是不一样的。
这些降维算法的思想都很简单,却在有些方面很有效。
这些方法事实上是后面一些新的算法的思路来源。
Laplacian Eigenmaps[1] 看问题的角度和LLE有些相似,也是用局部的角度去构建数据之间的关系。
它的直观思想是希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近。
Laplacian Eigenmaps可以反映出数据内在的流形结构。
使用时算法具体步骤为:
步骤1:构建图
使用某一种方法来将所有的点构建成一个图,例如使用KNN 算法,将每个点最近的K 个点连上边。
K 是一个预先设定的值。
步骤2:确定权重
确定点与点之间的权重大小,例如选用热核函数来确定,如果点i和点j相连,那么它们关系的权重设定为:
使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。
前面提到过,Laplacian Eigenmap具有区分数据点的特性,可以从下面的例子
看出:
见图1所示,左边的图表示有两类数据点(数据是图片),中间图表示采用Laplacian Eigenmap降维后每个数据点在二维空间中的位置,右边的图表示采用PCA并取前两个主要方向投影后的结果,可以清楚地看到,在此分类问题上,
Laplacian Eigenmap的结果明显优于PCA。
图2 roll数据的降维
图2说明的是,高维数据(图中3D)也有可能是具有低维的内在属性的(图中roll实际上是2D的),但是这个低维不是原来坐标表示,例如如果要保持局部关系,蓝色和下面黄色是完全不相关的,但是如果只用任何2D或者3D的距离来描述都是不准确的。
下面三个图是Laplacian Eigenmap在不同参数下的展开结果(降维到2D),可以看到,似乎是要把整个带子拉平了。
于是蓝色和黄色差的比较远。