目录:

前言

怕什么真理无穷,进一寸有一寸的欢喜——胡适

学以致用,以学促用。

最近在分析数据,发现几大分析方法,PCA,ICA,CCA,又因为光学是没用的,还要有输出检验,因此,开始写这个系列的帖子了。

主成分分析

之前对PCA算法有过一段时间的研究,但没整理成文章,最近,又刚好再用这个做人脸重构,故趁热打铁整理下PCA算法的知识。
本文观点旨在抛砖引玉,有异议的大家可以再评论下面写出来,一起讨论。

主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它通过矩阵变换用一组数量更少的特征对样本进行描述,从而降低了数据的维度。它的本质实际上是K-L变换。PCA方法最著名的应用应该是在人脸识别中特征提取及数据降维,我们知道如果输入一张200*200大小的人脸图像,单单光是提取它的灰度值作为原始特征,则这个原始特征将达到40000维,这给后面的处理将带来极大的难度。著名的人脸识别Eigenface算法就是采用PCA算法,用一个低维子空间描述人脸图像,同时又保存了识别所需要的信息。
为了先让大家有一点儿直观的印象,先给出几张图。
1比如这样的一些数据点
数据分析:主成分分析(PCA)1
是投影到绿色的线还是红色的线?
数据分析:主成分分析(PCA)1
看完之后,大家心里应该有个答案。
下面先介绍下PCA算法的本质K-L变换

1K-L变换(卡洛南-洛伊(Karhunen-Loeve)变换):最优正交变换

它具有如下优点:

  • 一种常用的特征提取方法;
  • 最小均方误差意义下的最优正交变换;
  • 在消除模式特征之间的相关性、突出差异性方面有最优的效果。

离散K-L变换:对一个向量x用确定的完备正交归一向量基uj展开:

x=j=1yjuj

补充说明正交基的意思是说

UjUj只在i=j的时候等于1,其他时候等于0.

也因此:
yj=yjujTuj=ujT(j=1yjuj)=ujTx
上面的公式看懂的话,就可以继续下面的推导了,如果,实在看不懂,可以再看几遍。
现在我们希望降低维度,依旧是少用几个基来表示x
也就是说:
x^=j=1dyjuj
但这么做,肯定会带来误差,我们希望误差最小化。
先把误差(均方误差意义下)表示出来:
ϵ=E[(xx^)T(xx^)]
=E[(j=d+1(yjujT)(j=d+1(yjuj)]

=E[d+1yj2]

=d+1[ujTE(xxT)uj]
R=ExxT
=d+1[ujTRuj]
使其最小,通过langrange乘子法进行求解:
g(uj)=d+1[ujTRuj]d+1rj(ujTuj1)
求偏导后得到:
Ruj=rjuj
满足上市时,误差取得最小值。
即相关矩阵R的d个特征向量(对应d个特征值从大到小排列)为基向量来展开向量x时,其均方误差最小,为:
ϵ=d+1rj

因此,K-L变换定义:当取矩阵R的d个最大特征值对应的特征向量来展开x时,其截断均方误差最小,是剩余的最小的n-d个之和。这d个特征向量组成的正交坐标系称作x所在的D维空间的d维K-L变换坐标系, x在K-L坐标系上的展开系数向量y称作x的K-L变换。


小结一下:
k-l变换将均方误差转换成矩阵n-d个特征值最小也就是d个特征值最大这样的等价问题。
因此,可以将最大的d个特征值对应的特征向量构建成一个正交基,然后,对原数据进行变换,得到均方误差最小的降维表示。

2pca分析

主成分分析(PCA)的原理就是将一个高维向量x,通过一个特殊的特征向量矩阵U,投影到一个低维的向量空间中,表征为一个低维向量y,并且仅仅损失了一些次要信息。也就是说,通过低维表征的向量和特征向量矩阵,可以基本重构出所对应的原始高维向量。


参考
pca分析介绍

相关文章: