机器学习——主成分分析(PCA)

主成分分析(PCA)是一种常用的无监督学习算法,用于数据降维。通过将数据转换到新的坐标系统中,使数据投影的第一大方差在第一主成分上,以此类推。本文详细介绍了PCA的理论基础,包括最大可分性的概念、推导过程以及如何选择降维后的维度。
摘要由CSDN通过智能技术生成

以下内容均为个人理解,如有错误,欢迎指出


什么是主成分分析

主成分分析(PCA)常用于降维,是一种无监督算法。在周志华老师的《机器学习》一书中,将PCA的降维目的分为最近重构性和最大可分性,最近重构性部分有一丝问题(由于逆矩阵的作用与原矩阵的几何效用相反,基于投影点重构的点和原样本点是相等的,故书中式10.14的值应该等于0),故本文主要讨论最大可分性。

最大可分性:把数据变换到一个新的坐标系统中,使得这一数据的任何投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。


PCA的一点个人理解

方差是度量离散程度的统计量,我们相信方差大的方向是信号的方向,并且方差大的方向对于数据的相对分布具有更大的贡献,考虑二维坐标系xOy,若一组样本点在x轴的取值近似(方差小),在y轴的取值变化较大(方差大),我们将所有的样本点投影到y轴,则样本点在y轴上的相对分布几乎没变(相当于将xOy坐标系的样本点沿x轴进行相同方向相同位移,此时样本点的相对分布并没有发生改变),PCA寻找的新坐标系,将尽可能的保留样本点之间的相对分布


推导过程

符号表

符号名含义
X降维前m个样本中心化后构成的矩阵,为 ( x 1 , x 2 , . . . . , x m ) (x_1,x_2,....,x_m) (x1,x2,....,xm),设每个样本点的维度为 d d d
Y降维后m个样本点构成的矩阵,为 ( y 1 , y 2 , . . . . , y m ) (y_1,y_2,....,y_m) (y1,y2,....,ym),设降维后每个样本点的维度为 d ′ d' d d ′ < d d'<d d<d
WPCA确定的坐标系,为 ( w 1 , w 2 , . . . , w d ′ ) (w_1,w_2,...,w_{d'}) (w1,w2,...,wd),为 d ∗ d ′ d*d' dd矩阵, Y = W T X Y=W^TX Y=WTX,满足 W W T = I WW^T=I WWT=I

Y = W T X Y=W^TX Y=WTX即将样本点从原先的坐标系投影到W构成的坐标系,注意到 W W T = I WW^T=I WWT=I,意味着W中的列向量两两正交且膜长为1,以 w 1 x 1 w_1x_1 w1x1来说,有 w 1 x 1 = ∣ w 1 ∣ ∣ x 1 ∣ cos ⁡ θ = ∣ x 1 ∣ cos ⁡ θ w_1x_1=|w_1||x_1|\cos\theta=|x_1|\cos\theta w1x1=w1x1cosθ=x1cosθ,即将向量 x 1 x_1 x1投影到向量 w 1 w_1 w1方向的长度, y 1 = W T x 1 y_1=W^Tx_1 y1=WTx1 y 1 y_1 y1表示向量 x 1 x_1 x1投影到向量 w 1 , w 2 , . . . . w d ′ w_1,w_2,....w_{d'} w1,w2,....wd方向的长度,即如何用W构成的坐标系表示 x 1 x_1 x1,即将 x 1 x_1 x1投影到 W W W构成的坐标系。

接下来,我们看看如何寻找方差最大的方向。

进行PCA之前,我们首先对数据进行中心化(也可以是标准化,只是中心化比较好讨论),即将样本每一维数值减去该维的均值,降维后的样本也满足中心化的要求,我们先认识一下协方差,计算公式为 c o v ( X , Y ) = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) n − 1 cov(X,Y)=\frac{\sum_{i=1}^n(x_i-\bar x)(y_i-\bar y)}{n-1} cov(X,Y)=n1i=1n(xixˉ)(yiyˉ)协方差表示的是两个变量的总体误差,如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

对于一个m个二维样本构成的矩阵
{ x 1 , x 2 , . . . , x m y 1 , y 2 , . . . , y m } (式1.0) \left\{ \begin{matrix} x_1,x_2,...,x_m\\ y_1,y_2,...,y_m \end{matrix} \right\}\tag{式1.0} {x1,x2,...,xmy1,y2,...,ym}(1.0)
其协方差矩阵为
{ 1 m − 1 ∑ i = 1 m ( x i − x ˉ ) 2 1 m − 1 ∑ i = 1 m ( x i − x ˉ ) ( y i − x ˉ ) 1 m − 1 ∑ i = 1 m ( x i − x ˉ ) ( y i − y ˉ ) 1 m − 1 ∑ i = 1 m ( y i − y ˉ ) 2 } (矩阵1.1) \left\{ \begin{matrix} & \frac{1}{m-1}\sum_{i=1}^m(x_i-\bar x)^2 & \frac{1}{m-1}\sum_{i=1}^m(x_i-\bar x)(y_i-\bar x)\\ \\ & \frac{1}{m-1}\sum_{i=1}^m(x_i-\bar x)(y_i-\bar y) & \frac{1}{m-1}\sum_{i=1}^m(y_i-\bar y)^2 \end{matrix} \right\}\tag{矩阵1.1} m11i=1m(xixˉ)2m11i=1m(xixˉ)(yiyˉ)m11i=1m(xixˉ)(yixˉ)m11i=1m(yiyˉ)2(1.1)
协方差矩阵对角线上的元素表示将样本投影到对应坐标轴后的方差(本例中为投影到X轴与Y轴的方差),设式1.0中心化后的矩阵为 H H H,则式1.1可以表示为 1 m − 1 H H T ( 式 1.0 ) \frac{1}{m-1}HH^T(式1.0) m11HHT1.0

回到PCA的问题,由于我们事先对数据进行了中心化处理,所以降维后的数据的协方差可以表示为 1 m − 1 Y T Y \frac{1}{m-1}Y^TY m11YTYPCA的目的是最大可分性,因此,我们的目的是最大化(常数无影响) t r ( Y Y T ) tr(YY^T) tr(YYT)tr称为矩阵的迹,为方形矩阵对角线上元素的和,对式1.0进行变形可得 t r ( Y Y T ) = t r ( W T X X T W ) tr(YY^T)=tr(W^TXX^TW) tr(YYT)=tr(WTXXTW)
因此,基于最大可分性,PCA的优化目标为 max ⁡ w t r ( W T X X T W ) s . t      W T W = I (式1.1) \max \limits_{w}tr(W^TXX^TW)\\s.t\ \ \ \ W^TW=I\tag{式1.1} wmaxtr(WTXXTW)s.t    WTW=I(1.1)
对上述式子使用拉格朗日乘子法(上述约束条件可以写成若干个等式,基于这些等式使用拉格朗日乘子法即可,为了表述方便,下列式子仍用矩阵) t r ( W T X X T W ) − λ ( W T W − I ) tr(W^TXX^TW)-\lambda(W^TW-I) tr(WTXXTW)λ(WTWI) W T W^T WT求导置0得 X X T W = λ W XX^TW=\lambda W XXTW=λW ( X X T w 1 , X X T w 2 , . . . . . , X X T w d ′ ) = ( λ w 1 , λ w 2 , . . . . , λ w d ′ ) (XX^Tw_1,XX^Tw_2,.....,XX^Tw_{d'})=(\lambda w_1,\lambda w_2,....,\lambda w_{d'}) (XXTw1,XXTw2,.....,XXTwd)=(λw1,λw2,....,λwd)
X X T w i = λ w i   ( i = 1 , 2.... , d ′ ) XX^Tw_i=\lambda w_i\ (i=1,2....,d') XXTwi=λwi (i=1,2....,d)
由此可知W由 X X T XX^T XXT(d*d的方形矩阵)的 d ′ ( d ′ < d ) d'(d'<d) d(d<d)个特征向量组成,我们只需对 X X T XX^T XXT进行特征分解即可得到所有的特征向量,现在问题是如何选择 d ′ ( d ′ < d ) d'(d'<d) d(d<d)个特征向量构成W,答案是前 d ′ d' d大的特征值对应的特征向量


d’个数的选择

1、用户事先指定
2、通过对降维后的数据使用KNN进行交叉验证来确定 d ′ d' d
3、设 X X T XX^T XXT的特征向量为 λ 1 , λ 2 , . . . . . , λ d \lambda_1,\lambda_2,.....,\lambda_d λ1,λ2,.....,λd,则有 ∑ i = 1 d ′ λ i ∑ i = 1 d λ i ≥ t \frac{\sum_{i=1}^{d'}\lambda_i}{\sum_{i=1}^d\lambda_i}\geq t i=1dλii=1dλit
只需事先指定 t t t,即可解出 d ′ d' d

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值