精华内容
下载资源
问答
  • PCA算法Matlab实现
    千次阅读
    2019-03-15 14:57:42

    代码:

    function [newX,T,meanValue] = pca_row(X,CRate)
    %每行是一个样本
    %newX  降维后的新矩阵
    %T 变换矩阵
    %meanValue  X每列均值构成的矩阵,用于将降维后的矩阵newX恢复成X
    %CRate 贡献率
    %计算中心化样本矩阵
    meanValue=ones(size(X,1),1)*mean(X);
    X=X-meanValue;%每个维度减去该维度的均值
    C=cov(x);%计算协方差矩阵
    
    %计算特征向量V,特征值D
    [V,D]=eig(C);
    %将特征向量按降序排序
    [dummy,order]=sort(diag(D),'descend');
    V=V(:,order);%将特征向量按照特征值大小进行降序排列
    d=diag(D);%将特征值取出,构成一个列向量
    newd=d(order);%将特征值构成的列向量按降序排列
    
    %取前n个特征向量,构成变换矩阵
    sumd=sum(newd);%特征值之和
    for j=1:length(newd)
        i=sum(newd(1:j,1))/sumd;%计算贡献率,贡献率=前n个特征值之和/总特征值之和
        if i>CRate%当贡献率大于95%时循环结束,并记下取多少个特征值
            cols=j;
            break;
       end
    end
    T=V(:,1:cols);%取前cols个特征向量,构成变换矩阵T
    newX=X*T;%用变换矩阵T对X进行降维
    end

     

    更多相关内容
  • 可由MATLAB实现PCA算法实例,附实例原始数据。调试图像效果很好
  • PCA算法matlab实现

    2018-07-11 17:55:03
    PCA算法实现,希望能帮助到大家。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • pca算法matlab程序

    2013-06-06 14:04:17
    很好,很详细的pca代码,解释很清晰,对初学者有一定的帮助
  • MATLAB实现PCA算法

    千次阅读 2021-10-16 11:53:16
    前言 最近在看有关PCA的东西,看完后准备用MATLAB实现,谁知道MATLAB一堆函数,头都快看晕了,因此整理一下。 pca

    前言

    最近在看有关PCA的东西,看完后准备用MATLAB实现,谁知道MATLAB一堆函数,因此整理一下。

    PCA原理

    这里不推导数学公式,推导数学公式已经有其他很多讲的非常好的博客了。我这里尽量用通俗易懂的语言讲解一下。

    PCA的过程是这样的,首先求出原始矩阵A(mxn)的协方差矩阵(mxm),然后对协方差矩阵求特征值。假设原始数据是n维,想要降到k维,则取前k个最大的特征值,将这k个特征值对应的特征向量作为系数矩阵,用原始数据乘以该系数矩阵便实现了降维。

    这里需要说明一下的是,如果我也不知道想降低到多少维度,仅仅是想保证方差贡献度为99%以上,该如何做呢?简单,上述过程中不是求出了n个特征值吗,假设说前k个特征值的和/所有特征值的和达到了99%,那么k即为所求。

    MATLAB实现

    注意事项

    原始数据A在使用PCA进行压缩之前必须中心化,即保证每列数据均值为0。那到底需不需要进行标准化呢(使得数据均值为0,标准差为1)?这个需要根据数据的实际情况考虑,如何不同特征之间数值相差太大,则建议进行标准化。matlab中有可直接使用的标准化函数normalize

    [coeff,latent,explained]=pcacov(A);
    %1设定方差贡献度为99%
    for i=1:length(explained)
    	if sum(explained(1:i))>99
    		ans=i;
    		break;
    	end
    end
    tran=coeff(:,1:ans);
    B=A*coeff;
    %仅仅取前k维向量
    %tran=coeff(:,1:k);
    B=A*coeff;
    

    解释一下,coeff为主成分系数,也就是原始矩阵A的协方差矩阵所对应的特征值的特征向量(由大到小排列,列向量一一对应)。latent为每个主成分所对应的方差,explained则是每个主成分所对应的方差的占比情况。可以理解为explained是将latent进行了0-1的归一化。

    一些说明

    实现PCA的方法,也就是求出协方差矩阵后,求对应的特征值和特征向量的方法有两种,一是特征值分解,二是奇异值分解SVD。matlab函数pcacov使用的是奇异值分解,适用于原始数据A(mxn)m远大于n的情况,这个时候使用特征值分解会不太准。这里有点赘述,可忽略。

    最后

    如果有不当或错误之处,欢迎留言指正。

    展开全文
  • 人脸识别PCA算法matlab实现及详细步骤讲解.doc
  • PCA算法MATLAB

    2016-12-20 12:11:31
    PCA算法MATLAB
  • 基于PCA算法人脸识别的MATLAB实现.pdf
  • 基于PCA的人脸识别算法matlab实现,使用的是ORL数据库,需要配合使用
  • 主成分分析方法,用于故障诊断,能够实现故障特征提取
  • %FaceRec.m%PCA人脸识别修订版,识别率88%%calc xmean,sigma and its eigen decompositionallsamples=[];%所有训练图像for i=1:40for j=1:5a=imread(strcat('e:\ORL\s',num2str(i),'\',num2str(j),'.jpg'));%imshow...

    %FaceRec.m

    %PCA人脸识别修订版,识别率88%

    %calc xmean,sigma and its eigen decomposition

    allsamples=[];%所有训练图像

    for i=1:40

    for j=1:5

    a=imread(strcat('e:\ORL\s',num2str(i),'\',num2str(j),'.jpg'));

    %imshow(a);

    b=a(1:112*92);%b是行矢量1×N,其中N=10304,提取顺序是先列后行,即从上

    到下,从左到右

    b=double(b);

    allsamples=[allsamples;b];%allsamples是一个M*N矩阵,allsamples中每一行数

    据代表一张图片,其中M=200

    end

    end

    samplemean=mean(allsamples);%平均图片,1×N

    for i=1:200xmean(i,:)=allsamples(i,:)-samplemean;%xmean是一个M×N矩阵,xmean

    每一行保存的数据是“每个图片数据-平均图片”

    end;

    %获取特征值及特征向量

    sigma=xmean*xmean';%M*M阶矩阵

    [v d]=eig(sigma);

    d1=diag(d);

    %按特征值大小以降序排列

    dsort=flipud(d1);

    vsort=fliplr(v);

    %以下选择90%的能量

    dsum=sum(dsort);

    dsum_extract=0;

    p=0;

    while(dsum_extract/dsum<0.9)

    p=p+1;

    dsum_extract=sum(dsort(1:p));

    end

    i=1;

    %(训练阶段)计算特征脸形成的坐标系

    base=xmean'*vsort(:,1:p)*diag(dsort(1:p).^(-1/2));

    %base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1)

    %详见《基于PCA的人脸识别算法研究》p31

    %xmean'*vsort(:,i)是小矩阵的特征向量向大矩阵特征向量转换的过程

    %while(i<=p&&dsort(i)>0)

    %base(:,i)=dsort(i)^(-1/2)*xmean'*vsort(:,i);%base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1)

    %详见《基于PCA的人脸识别算法研究》p31

    %i=i+1;%xmean'*vsort(:,i)是小矩阵的特征向量向大矩阵特

    征向量转换的过程

    %end

    %以下两行add by gongxun将训练样本对坐标系上进行投影,得到一个M*p阶矩阵allcoor allcoor=allsamples*base;%allcoor里面是每张训练人脸图片在M*p子空间中的一个点,即在子空间中的组合系数,

    accu=0;%下面的人脸识别过程中就是利用这些组合系数来进行识别

    展开全文
  • pca算法matlab实现

    2012-12-07 20:45:45
    基于matlabpca算法,使用svd算法。
  • 【图像压缩】基于主成分分析PCA算法实现图像压缩matlab源码.md
  • matlab实现pca算法

    2021-04-22 18:26:25
    matlab实现pca算法matlab2020-10-24下载地址https://www.codedown123.com/45551.html用matlab实现的pca算法,用于将维,适用于各种试验,如人脸识别程序资源下载此资源下载价格为2D币,请先登录资源文件列表PCA-...

    用matlab实现的pca算法

    matlab

    2020-10-24

    下载地址

    https://www.codedown123.com/45551.html

    用matlab实现的pca算法,用于将维,适用于各种试验,如人脸识别程序

    资源下载此资源下载价格为2D币,请先登录

    资源文件列表

    PCA-Face-Recognition/PCA-based Face Recognition System.htm , 37858

    PCA-Face-Recognition/PCA-Face-Recognition.rar , 183427

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/CreateDatabase.m , 1865

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/EigenfaceCore.m , 2930

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/example.m , 1303

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/Readme.txt , 1352

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/Recognition.m , 2541

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/1.jpg , 6264

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/10.jpg , 6852

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/2.jpg , 6007

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/3.jpg , 5680

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/4.jpg , 6525

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/5.jpg , 4341

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/6.jpg , 5876

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/7.jpg , 4352

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/8.jpg , 6725

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/9.jpg , 5570

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TestDatabase/Thumbs.db , 36864

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/1.jpg , 6391

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/10.jpg , 4223

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/11.jpg , 5967

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/12.jpg , 5870

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/13.jpg , 4363

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/14.jpg , 4360

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/15.jpg , 6681

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/16.jpg , 6693

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/17.jpg , 5417

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/18.jpg , 5448

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/19.jpg , 6827

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/2.jpg , 6219

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/20.jpg , 6746

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/3.jpg , 6046

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/4.jpg , 6195

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/5.jpg , 5826

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/6.jpg , 5986

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/7.jpg , 6507

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/8.jpg , 6506

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/9.jpg , 4285

    PCA-Face-Recognition/PCA_based Face Recognition System/PCA_based Face Recognition System/TrainDatabase/Thumbs.db , 73728

    PCA-Face-Recognition/PCA_based Face Recognition System.zip , 181668

    展开全文
  • 人脸识别PCA算法MATLAB

    2018-07-18 16:18:50
    基于的人脸识别算法,首先应用变换,求出训练人脸空间的特征值,对特征值进行一定的取舍,然后构成一个新的低维正交基空间,我们将所有的人脸投影在这个低维空间中,然后计算与待测图像的人脸最近的人脸图像,最后...
  • 降维算法PCAmatlab平台下的使用demo,采用自带函数,注释详细。
  • 资源名:PCA算法人脸识别_人脸识别_PCA_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有...
  • Matlab人脸识别-PCA算法

    2018-12-05 21:59:02
    这是一个基于PCA的人脸识别算法程序语言是Matlab,亲测能用。而且里面有PDF可以学习相应的原理和数学计算过程。有助于学习机器学习的降维算法
  • 基于PCA算法人脸识别的matlab实现.pdf
  • svd算法matlab代码主成分分析(PCA)实验 主成分分析(PCA)非常有用,并且是统计和机器学习中常用的算法之一。 该工具被广泛用于各种应用中,例如用于可视化和分析的降维,压缩,离群值检测和图像处理。 PCA是我最...
  • PCA算法是基于图像重构的方法进行图像特征识别的。内有训练样本、多个测试图片以及文档说明。 识别步骤: ① 选择训练样本 ② 计算样本平均数字特征,数字特征空间 ③ 读取待识别数字,进行连通分量分割,确定需要...
  • svd算法matlab代码 PCA Matlab PCA algorithm sample code using SVD
  • PCA故障诊断(Matlab代码),pca算法matlab代码,matlab源码
  • 前言在前面的博文 PCA算法学习_1(OpenCV中PCA实现人脸降维) 中已经初步介绍了PCA算法的大概流程及在人脸降维上面的应用。本文就进一步介绍下其理论基础和matlab实现(也是网上学者的代码)。开发环境:Matlab2012a...
  • matlab实现pca聚类

    2017-12-04 21:21:35
    matlab 实现pca聚类算法,仅有matlab脚本文件.。。。。
  • 像素级融合算法的三种基础算法MATLAB实现,仅供参考 像素级融合算法的三种基础算法MATLAB实现,仅供参考
  • PCA算法实例

    2015-10-12 17:18:50
    此为MATLAB程序,里面详细介绍了PCA主成分分析,并附有数据,希望对大家有帮助。
  • PCA算法学习(Matlab实现

    千次阅读 2015-10-23 16:40:00
    PCA(主成分分析)算法,主要用于数据降维,保留了数据集中对方差贡献最大的若干个特征来达到简化数据集的目的。 实现数据降维的步骤: 1、将原始数据中的每一个样本用向量表示,把所有样本组合起来构成一个矩阵,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,201
精华内容 2,880
关键字:

pca算法matlab实现

matlab 订阅