PCA 方法

设\(X = [{x_1},{x_2},…{x_N}],x \in {R^d}\),为d维样本空间的N个向量\(h=i\)。

协方差矩阵:\(C  = {1 \over N}X{X^T}\)
可以做特征值分解\(C = U\Lambda {U^T}\),其中U为特征矩阵,\( \Lambda  \)是特征值矩阵。
若只保留k个维度,只需要以k个特征向量为基矢,将所有的向量向他们投影,就可以了。
对于二维的情况如下图(来自wikipedia,[2])

GaussianScatterPCA
图中画出了两个特征向量,将所有点向特征向量上投影,就得到中心在0的,1维的点。

概念:
Principal component:主成分

From wikipedia: Principal component analysis (PCA) is a statistical procedure that uses orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly uncorrelated variables called principal components.

PCA方法是一个统计学方法,它使用正交变换将可能存在相性相关关系的变量转换为线性无关的变量,这些线性无关的向量称为principal components。
(个人理解,表述也许并不严格)也就是说,在上图中的两个向量(也就是wikipedia所说的变量)为坐标的基矢,他们在样本空间中是线性相关的,通过PCA方法,他们转变为样本空间中的两个特征向量,他们在该样本空间中是线性无关的(这是显然的)。

一种比较直观的理解是,PCA方法找到特征值最大的基矢,使得样本点在这些基矢上的投影的方差尽可能地大。

PCA与LDA [3]

PCA是一种非监督的学习方法(unsupervised learning),与之对应的LDA方法(Linear Discriminant Analysis线性判别分析[4])是监督的学习方法(supervised learning)。两者都试图使得样本点之间的差异最大,所不同的是,PCA不关心这些样本点之间是不是同一个类,统一把所有的点都尽可能能地分离,而LDA则是要最大化类之间的距离。

从最大化的目的来看,PCA的目的是最大化方差,而LDA则是最大化Fisher Score。


[1] Kernel PCA 原理和演示
[2] Principal_component_analysis in wikipedia
[3] 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
[4] Linear discriminant analysis