天天看点

主成分分析PCA学习笔记

主成分分析(principal components analysis,PCA)是一个简单的机器学习算法,主要思想是对高维数据进行降维处理,去除数据中的冗余信息和噪声。

算法:

输入样本:$D=\left \{ x_{1},x_{2},\cdots ,x_{m}\right \}$

过程:·

1:对所有样本进行中心化:$x_i\leftarrow x_i-\frac{1}{m}\sum_{i=1}^{m}x_i$;

2:计算所有样本的协方差矩阵:$XX^T$;

3:对协方差矩阵$XX^T$做特征值分解;

4:取最大的${d}'$个特征值做所对应的特征向量$w_1,w_2,\cdots ,w_{d'}$.

输出:投影矩阵$W=(w_1,w_2,\cdots ,w_{d'})$

PCA算法主要用在图像的压缩,图像的融合,人脸识别上:

在python的sklearn包中给出了PCA的接口:

以自己造的数据集进行测试并测试

程序提取了一个特征值

用PCA算法对testSet.txt数据集进行降维处理

结果:

蓝色三角形为原始数据,红色圆为数据的主方向,可以看到PCA算法很好地找到了数据的主方向

主成分分析PCA学习笔记

att_faces中含有40张脸,每张脸10张92*112像素灰度照片的数据集

主成分分析PCA学习笔记

这里以att_faces数据集为例:

主成分分析PCA学习笔记

由于每次选择训练的图片是随机的,随后的准确率也是会变化的,当提高低维空间的维度时能提高准确率

主成分分析PCA学习笔记