几种降维方法 PCA、LDA、LPP http://www.cnblogs.com/oimz/archive/2011/08/24/PCA.html
初识 PCA-主成分分析
PCA,Principal Component Analysis。是一种掌握事物主要矛盾的统计分析方法,它可以
从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。这是百度百科的一句话。
个人对其的理解,这是一种减少干扰信息并用来区分数据的方法。
比如小 A 和小 B 是一对双胞胎,小 A 的额头上有颗痣,而小 B 没有。此时,我们分辨这两个
人只需要根据谁的额头上有痣即可,而无需关注两个人在其他方面的微小差别。
人脸中长了痣,这是很形象的,且根据经验,人们会把这颗痣当做区分这对双胞胎的要素。而
在现实生活的数据处理中,如向量,向量之间的区分点不是那么明显,而且机器也不会根据经验
来判断哪些数据可以当做区分与其他向量的要素。针对这一问题,PCA 被提了出来,PCA 算法
是一种无监督学习(unsupervised learning),无须事先训练则可以找到区分于其他数据的
“痣”。
关于 PCA 算法的步骤,网上到处都是而且很详细,而那些公式也大多是一样了。本文中便不
再赘述,在这里只是做一下简单的介绍。首先我们有 N 个 P 维的向量要区分,X1,X2...Xn。P
比较大,则处理所有向量的数据量较大,我们将其降至 d 维(d<P)。首先构造矩阵
S=[X1,X2...Xn],算出协方差矩阵 C(P 维方阵),求出 C 的特征值 T 和特征向量 V。将特征
值按从大到小排列取出前 d 个特征值,并将这些特征值对应的特征向量构成一个投影矩阵 L。使
用 S*L 则得到降维后的提出主成分的矩阵。下面附上自己做的小实验。
X1 = [1,2,4] X2 = [10,4,5] X3 = [100,8,4]
根据经验上述 3 维向量中,第一维和第二维是区分的要素且第一维比第二维区分度更大。于是
我们构造矩阵 S,
S = [1,2,4;10,4,5;100,8,5]
计算出 S 的协方差矩阵 C = COV(S),
C =
1.0e+003 *
2.9970 0.1620 0.0180
0.1620 0.0093 0.0013
0.0180 0.0013 0.0003
求出协方差矩阵 C 的特征值 T 和特征向量 V,[T,V] = eig(C)
T =
-0.0235 0.0489 -0.9985
0.5299 -0.8464 -0.0540
-0.8478 -0.5303 -0.0060
V =
1.0e+003 *
-0.0000 0 0
0 0.0008 0
0 0 3.0059
取出第 3 个和第 2 个特征值以及相对应的特征向量构成投影矩阵 L(实际上可以只取第三维)