pca matlab 主轴确定,[DM]数据预处理-PCA主成分分析2(附MATLAB代码)

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

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

43d9b9aebb8ce5be182017ed4aee987a.png

PCA对数据的降维不是简单的维度挑选,而是将m维的数据映射到n维上(n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

大致为(1,1)方向。

1c115ca7f770c2fa170a65bce556e1f4.png

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

4541574788f88e5c3e57aff5c45cc218.png

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值