引言
Principal Components Analysis,是一种无监督学习方法,主要是用来将特征的主要分成找出,并去掉基本无关的成分,从而达到降维的目的。PCA的用处很多,此处不做详述。
基本原理
- 什么是主成分
实际情况下,很多特征都是有重复的内容的,他们彼此包含一部分信息,但是我们可以利用他们的组合得到一个包含更多信息的新特征,其中可以得到的包含最多信息的新特征就是这些特征中最重要的特征。假设原来的特征是X,变化之后的特征是F,则:
- 新特征的特性
如上所述,新的特征是各个老特征的线性组合,他们想尽可能的包含尽量多的信息,同时又注意到有很多新的特征,其数量与老特征的数量相同。如果每一个老特征都包含最大的信息量的话,那么所有的新特征都是相同的,为了避免相同,这里采取了正交的方法,即各个新特征相互正交,以此来避免包含相同的信息。这也就是说F2是在F1所包含的信息外的能包含最大的信息量的新特征。 - 信息量的计量
首先要明白信息量的作用,信息量越大,越能区分所有的样本。如何来计量主成分的信息量呢?试想如果有10000个样本的某个特征都集中在一个值附近,那么这个特征能很好的区分所有的样本么?很明显不可以。也就是说如果某个特征的取值范围很广,那么他的信息量越大,所以这里用了方差的性质来计量信息量的大小。
综上,
- 主成分间相互独立
- 越重要的主成分,方差越大
- 数学模型
现在的问题就只剩下,如何用数学模型来表征这些特征了
首先,相互独立的重要特征就是不同主成分间协方差为0,也就是协方差矩阵为对角阵
其次,上面所说的对角阵的特征值就是主成分的方差
所以得到以下方程:
将X归一化可得
协方差矩阵与矩阵乘积的关系:
http://blog.codinglabs.org/articles/pca-tutorial.html
整理方程得到A的系数矩阵
也就是说
λ
是R的特征值,A是其特征向量,都可以求出。由于
λ
也是主成分的方差,所以越大的
λ
值对应的主成分也就越重要。
http://wenku.baidu.com/link?url=TmMJrYEt4kTV1iKEs_b95QlfJ7Iog7gc1T-TTitDzi1pL_TKZU_p_7A05ct2bPlIbYtpCB0Qclxri7sZpm7t5HhW51K5oHL-CGnC6M_zpVq
基本原理都是根据上面链接的文章写的,感觉这里写的不明白的可以看看
实例解释
下面对应,ufldl上的实例做些基本的解释
1. ufldl中的
μ1
便是上面的
a1
,都是对应
λ
最大的对应的经过预处理的X的特征向量
2. 新的特征中的值可以看做是由原特征为基的坐标对应的值转化为以F为基的新坐标中的值,及变化时需要左乘
AT
降维
经过上面的变化,已经将原来的特征转化为了新的特征,并且知道了新的特征的重要性,经过变化之后可能得到,部分新的特征的相对重要性非常小(得到的对应
λ
相对非常小),这就说明,这些新特征并不是很重要,所以可以将这些特征去掉
屡一下;
1. 计算原特征值的相关系数矩阵
2. 计算此相关系数矩阵的特征值和特征向量
3. 选择包含一定信息量的特征值对应的特征向量,再加上0向量,得到新的K
4.
KTX
得到新的特征的数值
5.
AKTX
得到还原之后在原特征下的值
图像应用
在处理普通的直接拍摄的图片时不需要进行方差的归一化,使用整个图片的均值进行零均值化操作即可
在处理别的图片的时候需要进行其他处理