机器学习四大数据降维方法详解

article/2025/9/14 2:48:19

引言:

机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。

目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据。之所以使用降维后的数据表示是因为在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少 冗余信息 所造成的误差,提高识别(或其他应用)的精度。又或者希望通过降维算法来寻找数据内部的本质结构特征。

在很多算法中,降维算法成为了数据预处理的一部分,如PCA。事实上,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。

注:我写的东西有一些口语化,而且受限于网页blog的编辑功能,很多地方可能有一些简单。

主成分分析算法(PCA)

Principal Component Analysis(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。

通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会 分散开来,以此来保留更多的信息。可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。(实际上就是最接近原始数据,但是PCA并不试图去探索数 据内在结构)

设 n 维向量w为目标子空间的一个坐标轴方向(称为映射向量),最大化数据映射后的方差,有:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

其中 m 是数据实例的个数, xi是数据实例 i 的向量表达, x拔是所有数据实例的平均向量。定义W为包含所有映射向量为列向量的矩阵,经过线性代数变换,可以得到如下优化目标函数:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

其中tr表示矩阵的迹, 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps A是数据协方差矩阵。

容易得到最优的W是由数据协方差矩阵前 k 个最大的特征值对应的特征向量作为列向量构成的。这些特征向量形成一组正交基并且最好地保留了数据中的信息。

PCA的输出就是Y = W‘X,由X的原始维度降低到了k维。

PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方向的重要性。但是这样投影以后对数据 的区分作用并不大,反而可能使得数据点揉杂在一起无法区分。这也是PCA存在的最大一个问题,这导致使用PCA在很多情况下的分类效果并不好。具体可以看 下图所示,若使用PCA将数据点投影至一维空间上时,PCA会选择2轴,这使得原本很容易区分的两簇点被揉杂在一起变得无法区分;而这时若选择1轴将会得 到很好的区分结果。

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

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),这样在一维空间中也是很容易区分的。

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

接下来是推导,因为这里写公式很不方便,我就引用Deng Cai老师的一个ppt中的一小段图片了:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

思路还是非常清楚的,目标函数就是最后一行J(a),μ(一飘)就是映射后的中心用来评估类间距,s(一瓢)就是映射后的点与中心的距离之和用来评估类内距。J(a)正好就是从上述两个性质演化出来的。

因此两类情况下:

加上a’a=1的条件(类似于PCA)

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

可以拓展成多类:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

以上公式推导可以具体参考pattern classification书中的相应章节,讲fisher discirminant的

OK,计算映射向量a就是求最大特征向量,也可以是前几个最大特征向量组成矩阵A=[a1,a2,….ak]之后,就可以对新来的点进行降维了: y = A’X (线性的一个好处就是计算方便!)

可以发现,LDA最后也是转化成为一个求矩阵特征向量的问题,和PCA很像,事实上很多其他的算法也是归结于这一类,一般称之为谱(spectral)方法。

线性降维算法我想最重要的就是PCA和LDA了,后面还会介绍一些非线性的方法。

局部线性嵌入 (LLE)

Locally linear embedding(LLE)[1] 是一种非线性降维算法,它能够使降维后的数据较好地保持原有 流形结构 。LLE可以说是流形学习方法最经典的工作之一。很多后续的流形学习、降维方法都与LLE有密切联系。

见图1,使用LLE将三维数据(b)映射到二维(c)之后,映射后的数据仍能保持原有的数据流形(红色的点互相接近,蓝色的也互相接近),说明LLE有效地保持了数据原有的流行结构。

但是LLE在有些情况下也并不适用,如果数据分布在整个封闭的球面上,LLE则不能将它映射到二维空间,且不能保持原有的数据流形。那么我们在处理数据中,首先假设数据不是分布在闭合的球面或者椭球面上。

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

图1 LLE降维算法使用实例

LLE算法认为每一个数据点都可以由其近邻点的线性加权组合构造得到。算法的主要步骤分为三步:(1)寻找每个样本点的k个近邻点;(2)由每个 样本点的近邻点计算出该样本点的局部重建权值矩阵;(3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值。具体的算法流程如图2所示:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

图 2 LLE算法步骤

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

Laplacian Eigenmaps 拉普拉斯特征映射

继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps。其实不是说每一个算法都比前面的好,而是每一个算法都是从不同角度去看问题,因此解决问题的思路是不一样的。这些降维算法的思想都很 简单,却在有些方面很有效。这些方法事实上是后面一些新的算法的思路来源。

Laplacian Eigenmaps[1] 看问题的角度和LLE有些相似,也是用局部的角度去构建数据之间的关系。

它的直观思想是希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近。Laplacian Eigenmaps可以反映出数据内在的流形结构。

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

使用时算法具体步骤为:

步骤1:构建图

使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。

步骤2:确定权重

确定点与点之间的权重大小,例如选用热核函数来确定,如果点i和点j相连,那么它们关系的权重设定为:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。

前面提到过,Laplacian Eigenmap具有区分数据点的特性,可以从下面的例子看出:

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

图1 Laplacian Eigenmap实验结果

见图1所示,左边的图表示有两类数据点(数据是图片),中间图表示采用Laplacian Eigenmap降维后每个数据点在二维空间中的位置,右边的图表示采用PCA并取前两个主要方向投影后的结果,可以清楚地看到,在此分类问题 上,Laplacian Eigenmap的结果明显优于PCA。

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

图2 roll数据的降维

图2说明的是,高维数据(图中3D)也有可能是具有低维的内在属性的(图中roll实际上是2D的),但是这个低维不是原来坐标表示,例如如果要保持局部关系,蓝色和下面黄色是完全不相关的,但是如果只用任何2D或者3D的距离来描述都是不准确的。

下面三个图是Laplacian Eigenmap在不同参数下的展开结果(降维到2D),可以看到,似乎是要把整个带子拉平了。于是蓝色和黄色差的比较远。

文章出处:http://blog.csdn.net/xbinworld?viewmode=contents

            </div>

http://chatgpt.dhexx.cn/article/eyrrhcH3.shtml

相关文章

机器学习 | 降维问题

目录 一、主成分分析 二、奇异值分解 2.1 奇异值分解原理 2.2 奇异值分解实践 三、特征值与特征向量 一、主成分分析 主成分有如下特征&#xff1a; 每个主成分是原变量的线性组合&#xff1b;各个主成分之间互不相关&#xff1b;主成分按照方差贡献率从大到小依次排列&…

数据降维方法总结

Introduce 经过这几天面试后&#xff0c;我发现数据降维这一块在工业界用的很多或者说必不可少&#xff0c;因此&#xff0c;这方面需要重点关注。今天&#xff0c;我将数据降维总结于此&#xff0c;包括他人成果&#xff0c;这里对他们的内容表示感谢。 Method 对数据降维作…

机器学习四大降维方法

引言&#xff1a; 机器学习领域中所谓的降维就是指采用某种映射方法&#xff0c;将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y&#xff0c;其中x是原始数据点的表达&#xff0c;目前最多使用向量表达形式。 y是数据点映射后的低维向…

机器学习降维方法概括

最近刷题看到特征降维相关试题&#xff0c;发现自己了解的真是太少啦&#xff0c;只知道最简单的降维方法&#xff0c;这里列出了常见的降维方法&#xff0c;有些算法并没有详细推导。特征降维方法包括&#xff1a;Lasso&#xff0c;PCA&#xff0c;小波分析&#xff0c;LDA&am…

详解机器学习高维数据降维方法

当特征选择完成后&#xff0c;可以直接训练模型了&#xff0c;但是可能由于特征矩阵过大&#xff0c;导致计算量大&#xff0c;训练时间长的问题&#xff0c;因此降低维度也是必不可少的。 常见的降维方法除了以上提到的基于 L1 惩罚项的模型以外&#xff0c;另外还有主成分分…

机器学习之降维

本周关于降维的学习主要分为五类&#xff1a;PCA、LDA、LLE、tSNE、ISOMAP 来进行学习 首先自己的任务是&#xff1a;tSNE的学习 &#xff08;一&#xff09;降维的基本知识点总结 1、降维方法分为线性和非线性降维&#xff0c;非线性降维又分为基于核函数和基于特征值的方…

四大机器学习降维方法

引言&#xff1a; 机器学习领域中所谓的降维就是指采用某种映射方法&#xff0c;将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y&#xff0c;其中x是原始数据点的表达&#xff0c;目前最多使用向量表达形式。 y是数据点映射后的低维向…

降维方法总结

目录 数据降维方法: 降维&#xff1a; 降维的用处&#xff1a; 降维方法思想分类&#xff1a; 降维方法总览 降维方法详细说明 1. 缺失值比率&#xff08;Missing Value Ratio&#xff09; 2. 低方差滤波&#xff08;Low Variance Filter&#xff09; 3. 高相关…

数据分析七种降维方法

近来由于数据记录和属性规模的急剧增长&#xff0c;大数据处理平台和并行数据分析算法也随之出现。于此同时&#xff0c;这也推动了数据降维处理的应用。实际上&#xff0c;数据量有时过犹不及。有时在数据分析应用中大量的数据反而会产生更坏的性能。 最新的一个例子是采用 20…

12种降维方法及python实现

你遇到过特征超过1000个的数据集吗&#xff1f;超过5万个的呢&#xff1f;我遇到过。降维是一个非常具有挑战性的任务&#xff0c;尤其是当你不知道该从哪里开始的时候。拥有这么多变量既是一个恩惠——数据量越大&#xff0c;分析结果越可信&#xff1b;也是一种诅咒——你真的…

特征降维方法

关于降维的学习主要分为五类&#xff1a;PCA、LDA、LLE、tSNE、ISOMAP &#xff08;一&#xff09;降维的基本知识点总结 1、降维方法分为线性和非线性降维&#xff0c;非线性降维又分为基于核函数和基于特征值的方法。 &#xff08;1&#xff09;线性降维&#xff1a;PCA、…

四大降维方法

PCA和LDA之间的区别 从主观的理解上&#xff0c;主成分分析到底是什么&#xff1f;它其实是对数据在高维空间下的一个投影转换&#xff0c;通过一定的投影规则将原来从一个角度看到的多个维度映射成较少的维度。到底什么是映射&#xff0c;下面的图就可以很好地解释这个问题—…

数据降维方法小结

数据的形式是多种多样的&#xff0c;维度也是各不相同的&#xff0c;当实际问题中遇到很高的维度时&#xff0c;如何给他降到较低的维度上&#xff1f;前文提到进行属性选择&#xff0c;当然这是一种很好的方法&#xff0c;这里另外提供一种从高维特征空间向低纬特征空间映射的…

12种降维方法终极指南

来源&#xff1a;Analytics Vidhya 编译&#xff1a;Bot 授权自 论智 你遇到过特征超过1000个的数据集吗&#xff1f;超过5万个的呢&#xff1f;我遇到过。降维是一个非常具有挑战性的任务&#xff0c;尤其是当你不知道该从哪里开始的时候。拥有这么多变量既是一个恩惠——数据…

12种降维方法终极指南(含Python代码)

12种降维方法终极指南&#xff08;含Python代码&#xff09; 你遇到过特征超过1000个的数据集吗&#xff1f;超过5万个的呢&#xff1f;我遇到过。降维是一个非常具有挑战性的任务&#xff0c;尤其是当你不知道该从哪里开始的时候。拥有这么多变量既是一个恩惠——数据量越大&…

七种降维方法

近来由于数据记录和属性规模的急剧增长&#xff0c;大数据处理平台和并行数据分析算法也随之出现。于此同时&#xff0c;这也推动了数据降维处理的应用。实际上&#xff0c;数据量有时过犹不及。有时在数据分析应用中大量的数据反而会产生更坏的性能。 最新的一个例子是采用 20…

【数据降维】数据降维方法分类

数据降维基本原理是将样本点从输入空间通过线性或非线性变换映射到一个低维空间&#xff0c;从而获得一个关于原数据集紧致的低维表示。 数据降维工具箱drtoolbox中众多算法&#xff0c;这里简单做个分类。 因为很多并没有仔细了解&#xff0c;在此次只对八种方法做分类&…

机器学习之降维方法总结

降维方法分为线性降维方法和非线性降维方法&#xff0c;看下表&#xff1a;本文结构如下&#xff1a; 线性降维方法主成分分析法线性判别法奇异值分解法因子分析法非线性降维方法&#xff5e;&#xff5e;流形学习简介 说到维度&#xff0c;其目的是用来进行特征选择和特征提取…

常见的降维方法(PCA,SVD)

1、PCA降维&#xff08;主成分分析&#xff09; PCA降维就是去除线性相关&#xff0c;使得最后剩余的属性维度全都线性无关。 其实&#xff1a;PCA降维不仅是去除先线性无关&#xff0c;还可以过滤掉小特征值对应的特征向量。因为特征值变化小&#xff0c;对应的特征向量变化…

看!数据分析领域中最为人称道的七种降维方法

http://dataunion.org/20803.html 感谢王穆荣的投稿&#xff0c;转载请注明出处&#xff1a;数盟社区 近来由于数据记录和属性规模的急剧增长&#xff0c;大数据处理平台和并行数据分析算法也随之出现。于此同时&#xff0c;这也推动了数据降维处理的应用。实际上&#xff0…