人脸识别中用主成分分析PCA来将数据降维--MATLAB代码

人脸识别的数据集,维度一般都比较高,在自己的电脑上跑这么高维的数据集,很多个人计算机需要跑很长时间,因此一般都需要改变图像大小或者是降维。

常用的方式有以下几种,最普通的是改变图像的大小,是用的MATLAB自带的imresize函数来直接改变图像的大小,如何使用请自行查询。其次就是降维,基本的降维方式主要是PCA和LDA两种,复杂的我也曾用过自编码器降维。本文主要讲述的是用PCA的方式降维人脸数据集,因为我在查阅时,大多是分析原理,少有人能详细说明,如何实现训练集与数据集的处理。

一. PCA原理

 PCA的算法过程,用一句话来说,就是“将所有样本X减去样本均值m,再乘以样本的协方差矩阵C的特征向量V,即为PCA主成分分析”,其计算过程如下:
    [1].将原始数据按行组成m行n列样本矩阵X(每行一个样本,每列为一维特征)
    [2].求出样本X的协方差矩阵C和样本均值m;(Matlab可使用cov()函数求样本的协方差矩阵C,均值用mean函数)
    [3].求出协方差矩阵的特征值D及对应的特征向量V;(Matlab可使用eigs()函数求矩阵的特征值D和特征向量V)
    [4].将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P;(eigs()返回特征值构成的向量本身就是从大到小排序的)
    [5].Y=(X-m)×P即为降维到k维后的数据;

二. 实现方法

直接调用Matlab工具箱princomp( )函数实现,

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值