您的位置:首页 > 其它

PCA 主成分分析

2015-03-25 20:06 288 查看

1. 性质1

实对称矩阵的特征值对应的特征向量一定是正交的。

证明:

令实对称矩阵为 A,A的两个不同的特征值为 λ1, λ2,他们对应的特征向量为:μ1,μ2,则有:

Aμ1=λ1AAμ2=λ2A

所以:

(Aμ1)T=(λ1μ1)T⇒μ1TA=λ1μ1T⇒μ1TAμ2=λ1μ1Tμ2⇒μ1T(λ2μ2)=λ1μ1Tμ2⇒λ2μ1Tμ2=λ1μ1Tμ2

又,λ1≠λ2,所以:

μ1Tμ2=0

也就是说:μ1, μ2正交。

2. 目的

PCA 的目标就是:使用另一组基去重新描述得到的数据空间,而新的基要尽可能的揭示原有数据间的关系。也就是说:有效的找出数据中的最重要的元素和结构,去除噪音和冗余,将原有的复杂数据进行降维。

所用的数据集可用下述表示:

假设每个样本是一个长度为 n 的向量,X1=[x11,x12,...,x1n]T,如果有 m 个样本,那么数据集 X 可表示为:

X=[X1,X2,...Xm]T=⎡⎣⎢⎢⎢x11x21...xm1x12x22...xm2............x1n......xmn⎤⎦⎥⎥⎥m×n

3. 搞基

傅立叶变换,DCT 变换,小波变换,字典学习等一系列变换都是在搞基,也就是:通过某种基变换,把原始数据变换到另一个域上,使其能量更集中,进而达到压缩、降维等目的;至于图像去噪,是因为经过这些变换之后,图像信号的能量更集中,而噪声依旧较平均的分布,因此,将较低能量信号去除之后在反变换到图像域就可以实现降噪的目的。

PCA 也是在搞基,试图找到一组正交基(它们是标准正交基的线性组合),使这组正交基能更好的表示数据集。

假设 P 就是这样的一组正交基,P=[P1,P2,...,Pm],则:

Y=PX

其中:Y 表示原始数据 X 在这组正交基下的重新表示。

4. 目标

我们期望经过变换后的 Y 更好:

1. 最小化变量冗余,y1,y2,...,ym 尽量不想关,即:yTiyi=0(i≠j)

2. 最大化信号,能量尽量集中:yTiyi 尽量大

而 Y 的自相关矩阵正好包含这些信息,但是通常不用自相关矩阵,是因为我们在对原始数据进行处理之前通常会对原始数据进行白化处理,用以减小数据之间的冗余性。通常的处理手段为:

每个样本都减去所有样本的均值。

所以:上述 Y 的自相关矩阵就变成了 Y 的协方差矩阵:

CY=1n−1YYT=⎡⎣⎢⎢⎢⎢⎢⎢δ2y1y1δ2y2y1...δ2ymy1δ2y1y2δ2y2y2...δ2ymy2............δ2y1ym......δ2ymym⎤⎦⎥⎥⎥⎥⎥⎥m×m

最终目的就变成:使 CY 为对角阵

5. 求解

因为:

CY=1n−1YYT=1n−1(PX)(PX)T=1n−1P(XXT)PT

令:A=XXT,则:

CY=1n−1PAPT

又因为 A=XXT 是一个对称矩阵,可以对角化表示为:A=EDE−1,其中 D 为对角阵,且 E−1=ET,E 表示 A 的特征向量,D 的对角线上的元素表示 A 的特征值。

所以:

CY=1n−1PAPT=1n−1P(EDET)PT=1n−1(PE)D(PE)T

令:P=ET,则:

CY=1n−1D

也就是说:P=ET 就是要求的变换基,其中 E 表示 XXT 的特征向量。

至于如何求解 E,有两种方式:

1. 直接对 XXT 进行特征分解

2. 对 X 进行 SVD 分解,X=U∑VT,U 就是 XXT 的特征向量 E。

6. 提取主成分

X 的主元就是 XXT 的特征向量,也就是矩阵 P 的行向量,因此,主成分分析,提取主成分也就是选择 P 中主要的行向量。哪些行向量算是主要的呢?XXT 的特征值给出了答案,特征值比较大的那些分量表明:数据、信号主要集中在这些能量比较大的特征值所对应的特征向量的方向上。因此,可以首先对特征向量进行排序,选择一些能量比较大的特征值,使其满足:

φ=∑k1λi∑m1λi≥α

可选,α=0.99或0.95 等,并将其他特征值置为 0。

此时,新的 P 可表示为 Pk×m,经过压缩、降维之后的原始数据可以表示为:

Yk×n=Pk×mX

数据还原:

X=PT[Yk×n0]m×n

上述过程就完成了一个简单的去噪、降维、压缩的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息