首页 > 其他分享 >[DM]数据预处理-PCA主成分分析2(附MATLAB代码)

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)

时间:2022-09-29 21:34:58浏览次数:52  
标签:特征值 DM 特征向量 投影 降维 MATLAB 维度 PCA 数据

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据


我们在进行数据分析时,往往会发现数据具有很多种属性,比如某类型饼干的口味、加工方式、保质期、价格、购买人群等等。每一种属性就代表该数据在某一维度上的数值。多维度的数据无疑会增加数据的准确性与可靠性,但也给我们的计算带来麻烦。

主成分分析(Principal Component Analysis,PCA)是一种常用的数据分析方法,通常用于提取数据的主要特征分量,从而完成对高维数据进行降维的过程。

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据_02

PCA对数据的降维不是简单的维度挑选,而是将m维的数据映射到n维上(n<m),并且保证得到的n维数据仍能准确表示原数据特征

例如现在我们的数据如下图所示,x1x2代表原数据的两个维度。这时候我们看图像,也不好说x1x2哪个特性更能代表数据特征。

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征向量_03

我们再一看,好像原数据也可以用y1y2两个新维度表示。如下图,而且此时y1维度能体现的信息量(variance)远比y2维度大。这时我们就可以把x1x2两个维度的数据投影y1维度上放弃y2维度上的数据特征,从而达到降维的目的找到y1方向的过程就是PCA实现的过程

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据_04

如下图,e为投影方向,xk’为初始点xk投影到e方向上的投影点。

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据_05

经过理论推导(下面有推导过程,我先把结论写在前面),我们发现只要计算矩阵。

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据_06

(其中nx点个数)的特征值,那么在这些特征值中最大者对应的特征向量方向,就是我们要求解的e的方向。


数学推导过程如下(可不看)

我们取αk为投影点到坐标原点的距离,且e向量模长为1。


[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征向量_07

以所有初始点与投影点间欧式距离之和最小为求解目标

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征值_08

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征向量_09

这样我们的推导目标从求J(e)最小值转化为求

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征值_10

拉格朗日乘数法,u对e求导后等于0

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征向量_11

可以看出,λ为矩阵S的特征值,e为对应的特征向量

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据_12

所以PCA问题的问题求解就是求矩阵S特征值的最大值。



我们以实际数学问题为例,我们现在有如下数据点:

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征向量_13

我们对S特征值计算,发现有(0.7061,0.7081)和(-0.7081,-0.7061)两条特征向量,对应特征值为0.1934和1.7951。那么我们选取对应特征值大的(-0.7081,-0.7061)特征向量为最优投影方向。


大致为(1,1)方向。

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_数据_14


如下图,我们看到投影到(0.7071,0.7071)向量上的数据大致呈正态分布。

[DM]数据预处理-PCA主成分分析2(附MATLAB代码)_特征值_15

降维对于维度较高的数据集是很有必要的,虽然部分数据被舍弃了,但是舍弃这部分信息之后能使样本的采样密度增加,这正是降维的重要动机。


另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将他们舍弃能在一定程度上起到去噪的效果。


MATLAB代码

微信扫描下方二维码即可提取代码:


标签:特征值,DM,特征向量,投影,降维,MATLAB,维度,PCA,数据
From: https://blog.51cto.com/u_15810430/5724065

相关文章