图像处理中对很多副图片提取特征时,由于特征的维数过高而影响程序的效率,所以用到pca进行特征降维。
那怎样才能降低维数呢?它又用到了什么数学方法呢?
1.协方差矩阵
假设有一个样本集X,里面有N个样本,每个样本的维度为d。即:
将这些样本组织成样本矩阵形式,即每行为一个样本,每列为一个维度,得到样本矩阵T;根据协方差矩阵公式
其中为均值,n为样本数。可以先将样本矩阵中心化,即将每个维度减去对应的均值,得到中心化矩阵S,因此
协方差矩阵可以简单的表示为:
2.将协方差矩阵对角化
因为协方差矩阵是对称矩阵,对称矩阵对角化就可以得到一个正交矩阵P,且满足:
其中Λ为协方差矩阵的特征值所组成的对角阵,而P为每一个特征值所对应的的特征向量组成的矩阵。
3.取前p(p<d)个较大的特征值组成一个新的对角矩阵Λ1,其对应的p个新的特征向量组成的新的矩阵为P1
这样使得比P小了d-p个维度,从而达到降维的目的,只要求出降维后的样本矩阵,pca降维的目的就可以达成了。
新的样本矩阵各个维度间的协方差基本为零,也就是说的协方差矩阵应该为Λ1。即满足:
而又有公式:
带入可得:
由于样本矩阵的每一行是一个样本,特征向量矩阵是每一列的一个特征向量。右乘相当于每个样本
以的特征向量为基进行线性变换,得到新的样本矩阵中每个样本的维数变为了p,完成了降维的操作。
实际上P1中的特征向量就是低维空间的新的坐标,称之为“主成分”。这就是“主成分分析”的名称由来。同时的协方差矩阵
为近对角阵,说明不同维度间已经基本独立。至此,整个pca的过程已经结束。
在这里,要注意的是,在上面第3点中选择特征值(也就是选择主成分)是按照贡献率来的,而不是随便选取p个主成分。
其实也就是选取特征值大的,丢弃特征值较小的,因为特征值越大,对应的特征向量(也即主成分)包含的信息量越大。
贡献率是指选取的p个特征值之和占全部特征值之和的比重,一般为85%以上。公式如下:
总的来说,pca就是选取协方差矩阵的特征值较大的,忽略特征值较小的,因为特征值较小的对应的特征向量包含的信息量较小,
可以忽略,也就是说,丢弃次要的成分,保留主要的成分,从而达到降低维数。