python人脸识别特征脸法_人脸识别-PCA特征脸

人脸识别-PCA特征脸(大BOSS)

写在前面

你好,我是禅墨!好久,不见!

在忙了好久的各科考试之后,我终于闲下来了。

自从小凯上次输给我K210之后,一心想搞我,想要报仇。

小凯:阿墨,我给你说啊,我XX不服,给你三个小时,你给我做出来一个人脸识别,识别咱两个班一共57人,正确率不能低于96%,我赌100块钱!!!你得在我的监视下完成!

禅墨:确定?我怕你后悔!

小凯:确定!后悔,不存在的!你搞吧!!!小样!

思考了片刻决定用PCA实现!

PCA特征脸

PCA原理

PCA全名为主成分分析,其主要目的就是寻找一个矩阵,然后把原来的一组带有相关性的矩阵映射到寻找到的那个矩阵中,达到降维的目的。一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果。 这句话就相当于找到了一个R行N列矩阵,然后乘一个N行M列矩阵,这样就得到了一个R行M列矩阵(其中R<=N),达到降维的目的。其中M和N的含义为,M可以代表样本个数,而N代表每个样本的特征个数,所以最终结果就是把原来N个特征变为了R个特征,达到降维目的。

算法解析

1、构建一个样本集合S={T1,T2,...,TM}S =\{T_1,T_2,...,T_M\}S={T1​,T2​,...,TM​},SSS 可以看做是一个N行M列的矩阵,也就是有M个样本,每个样本有N个特征。其中TiT_iTi​是一个向量。

2、0均值化,为了便于计算方差的时候需要减去均值,所以如果本身样本是零均值的,就方便计算。

m=1M∑i=1MTim = \frac{1}{M}\sum_{i=1}^{M}T_im=M1​∑i=1M​Ti​ ,这个是计算均值在python中可以使用

m = T.mean(axis = 1)

进行计算,其中axis = 1代表按行求均值。

然后A=T−mA = T -mA=T−m 这个相当于把每个样本都减去均值,这样之后就相当于做了0均值化。

3、计算投影矩阵(就是相当于上面的那个R行M列矩阵)

这个投影矩阵其实就是由A∗ATA*A^TA∗AT矩阵的特征向量构成,但是由于大多数情况A∗ATA*A^TA∗AT的维度太大(A∗ATA*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值