模式识别系列|特征降维(1)主成分分析PCA

本文深入讲解主成分分析(PCA),一种常用数据降维方法。通过理论推导、几何理解及计算过程,阐述如何以方差最大化原则寻找正交轴,实现数据降维,降低信息损失。并提供MATLAB代码实例,展示PCA在数据集上的应用效果。

1-PCA概述

主成分分析是一种常用的降维方法,它不使用标签信息,通过将原始坐标空间的数据( d × 1 d\times 1 d×1)投影到新的正交空间( k × 1 k\times 1 k×1)中实现数据降维,所谓的主成分就是指数据在新空间的基的方向。PCA以方差作为信息损失衡量的标准,使得数据降维过程中信息损失最小,即降维后数据的方差要尽量大。PCA首先找到所有数据方差最大的方向,并将其作为新的坐标空间的第一个轴的方向,然后在这个方向的垂直超平面上寻找第二个投影后方差最大的方向,并作为新坐标空间第二个轴的方向,以此类推,直到找到需要的k个方向,也就是K个主成分,显然这k个新的基方向是两两垂直的。PCA的主要过程可以用“扭动坐标轴,保留K个轴”来形容。

为什么要以方差最大为依据呢?降维是为了数据更好地表示与计算,显然我们不希望降维后的数据成了一坨,使得原本分界明显的数据掺和在一起。例如,将数据投影到一维坐标系中,显然绿色的投影更好一些,因为其分散程度大,也就是方差更大。

在这里插入图片描述

对n个d维数据构成的数据集 X X X d × n d\times n d×n),要降维到k维的PCA过程如下:

1、将样本去均值得到新的 X X X,即 X X X的每一列减去 X X X的按行求和取平均

2、计算协方差矩阵 S = 1 n X X T S=\frac{1}{n}XX^T S=n1XXT

3、对协方差矩阵进行特征值特征向量分解

4、将特征值从大到小排序,将前K个特征值对应的特征向量组合成变换阵U( d × k d\times k d×k

5、将样本降维 Y = U T X Y = U^TX Y=UTX k × n k\times n k×n

2-理论推导

在推导之前,我们首先要明确三件事:一个是向量的内积与投影,第二个是基变换,第三个是协方差矩阵。

2.1-向量的内积与投影:

在这里插入图片描述
假设两个向量 a = ( a 1 , a 2 , ⋯   , a n ) T , b = ( b 1 , b 2 , ⋯   , b n ) T a=(a_1,a_2,\cdots,a_n)^T,b=(b_1,b_2,\cdots, b_n)^T a=(a1,a2,,an)T,b=(b1,b2,,bn)T,其内积表示为
a T b = a 1 b 1 + a 2 b 2 + ⋯ + a n b n = ∣ a ∣ ∣ b ∣ cos ⁡ θ ​ a^Tb=a_1b_1+a_2b_2+\cdots +a_nb_n=|a||b|\cos \theta​ aTb=a1b1+a2b2++anbn=abcosθ其中 θ \theta θ为两向量夹角。如图所示二维空间两个向量,向量a到b的投影应为b上由原点到绿线截断的部分,根据几何知识,投影长度为 ∣ a ∣ cos ⁡ θ |a|\cos \theta acosθ,于是 当向量b模长为1时,向量a与向量b的内积就是向量a到向量b的投影的矢量长度。

2.2-基的表示与变换:

我们平时表示的诸如 ( 3 , 2 ) T , ( 1 , 0 ) T (3,2)^T,(1,0)^T (3,2)T,(1,0)T等坐标都默认使用 ( 1 , 0 ) T , ( 0 , 1 ) T (1,0)^T, (0,1)^T (1,0)T,(0,1)T的基,也就是说对平面上一个矢量,例如 ( 3 , 2 ) T (3,2)^T (3,2)T实际上应该为 [ 1 0 0 1 ] [ 3 2 ] \begin{bmatrix}1&0\\0&1 \end{bmatrix}\begin{bmatrix} 3\\2\end{bmatrix} [1001][32],其中左边表示基,右侧表示在这组基下的表示。

现在我们想将这个 ( 3 , 2 ) T (3,2)^T (3,2)T在新的基下进行表示,其实只需要将原始基投影到新的基上即可,即点在新的基下的表示等于原始基到新基的转换乘以原始基乘以点在原始基下的表示。

在这里插入图片描述
例如,将原始坐标系中的点用蓝色线表示的基(45度)进行表示,蓝色线所示单位向量为 ( 2 2 , 2 2 ) T (\frac{\sqrt{2}}{2},\frac{\sqrt{2}}{2})^T (22 ,22 )T ( − 2 2 , 2 2 ) T (-\frac{\sqrt{2}}{2},\frac{\sqrt{2}}{2})^T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值