赞
踩
目录
主成分分析是一种常用的无监督学习方法。它利用正交变换,把由线性相关变量表示的观测数据转换成少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。由于主成分个数通常少于原始变量的个数,所以这一方法属于降维。
首先需要明确的是,线性无关的向量在空间中是相互垂直的,那么当我们确定一个降维后表示数据的向量的方向后,那么其他维度的方向也是比较明确了的,只需要在该向量的m个正交向量中选出k个线性无关的即可。也就是重新选择一组正交基(x1,x2,x3......xk)(k<m),当然这k个向量需要尽可能多的保留原原来数据的信息。
接下来我们确定向量的方向。我们要尽可能多的保留原来数据下信息,这样就需要原来数据在新确定的方向上的投影的分散程度越大越好,而有一个衡量数据分散程度的量我们很熟悉,那就是方差。
方差越大,数据的分散程度越大。
我们以一组数据来实际讲解一下过程:X={(10,6),(11,4),(8,5),(3,3),(2,2.8),(1,)}(数据来源:https://www.youtube.com/watch?v=FgakZw6K1QQ)
我们将原数据集X处理一下,令其减去均值,得到新的矩阵A=X-X.mean={(4.17,2.37),(5.17,0.37),(2.17,1.37),(-2.83,-0.63),(-3.83,-0.83),(-4.83,-2.63)}
由A可以更容易的求得X的方差,s^2(X1)=18.97,s^2(X2)=3.13。
由于我们是要把线性相关的数据降维成线性无关的,所以X1与X2是线性相关的,所以我们引入协方差来表示两者的线性相关程度,
通过计算可得,cov(X1,X2)=6.49。
我们定义协方差矩阵C:
设单位向量v=(x0,y0),那么向量a在v上的投影S计算如下:
,由于v维单位向量,模为1,所以:
因为A的样本中心为(0,0),向量在v上的投影长度S即为投影点到样本中心的距离,那么方差就可以表示为:
我们要找的是最大的方差,所以定义:,由于,引入拉格朗日系数后
要求方差最大,就要使f(v)最大,对v求导并令导函数可得:
这个式子我们就很熟悉了,两者分别为矩阵C的特征值与特征向量。对C做特征值分解可得:
上面已经证明了s^2=vCv^T,又因为,所以,所以对应特征值大的特征向量就是方差最大的方向,所以最终的方向为[-0.94,-0.34].
21.28\(21.28+0.81)*100%=96.33% 0.81\(21.28+0.81)*100%=3.67%所以选择v= [-0.94,-0.39]为主成分方向,可以保留原数据96.33%的信息。
最终由v·Ai得到降维后的数据。
最终得到的一维信息为{-4.72,-4.99,-2.5,2.88,3.89,5.44}.
PCA的一般流程是:
由2维降为一维,则m=2,k=1;由100维降为50维,则m=100,k=50。
降维对于维度较高的数据集是很有必要的,虽然部分数据被舍弃了,但是舍弃这部分信息之后能使样本的采样密度增加,这正是降维的重要动机,另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将他们舍弃能在一定程度上起到去噪的效果。
PCA对于数据的降维消除了数据间的线性相关性,但如果数据之间符合某种非线性相关性,PCA则不能很好的表现;而且PCA如果隐藏了重要的特征,降维后的数据便不能再被很好的利用;PCA虽然可以降维,但不能减少过拟合的发生,而且丢失信息可能会导致性能下降。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。