PCA的MATLAB实现

原创 2013年12月05日 17:27:56

通常有两种方式 1. 直接调用PCA函数princomp 2. 使用SVD分解,调用eig

1. 直接调用PCA函数princomp

    princomp的输入是原始数据。princomp会自动进行中心化。

    [COEFF,SCORE,LATENT]=princomp(X)

    X: 原始输入数据 Rows of X correspond to observations, columns to variables.

    LATENT: 特征向量

    COEFF: PCA的映射矩阵,eigen vectors, 列是按主成分变量递减的顺序排列

    SCORE: 将输入data X映射到生成的PCA空间,得到的PCA coefficients

    得到特征向量后,可以进行映射

    (1)将数据从原始空间映射到PCA空间

             score=bsxfun(@minus,X,mean(X,1))*COEFF (X为测试集)

    (2)将PCA coeffeicients映射到原始数据空间

            x=bsxfun(@plus,score*inv(COEFF),mean(X,1))

例子:

(1)X=rand(2,4)

X =

    0.1309    0.1536    0.0091    0.6090
    0.1892    0.0289    0.5965    0.9189

(2)[COEFF,SCORE,LATENT]=princomp(X)

COEFF =

    0.0860    0.1356    0.7219    0.6731
   -0.1839    0.1807   -0.6653    0.7006
    0.8660   -0.4349   -0.1793    0.1693
    0.4569    0.8717   -0.0638   -0.1655


SCORE =

   -0.3391         0         0         0
    0.3391         0         0         0


LATENT =

    0.2300
         0
         0
         0

(3) Project to PCA space

  alpha=inv(COEFF)*(X(1,:)'-mean(X,1)')

  alpha =

   -0.3391
   -0.0000
    0.0000
    0.0000

  (4) Project back to original space

  mean(X,1)'+COEFF*alpha

  ans =

    0.1309
    0.1536
    0.0091
    0.6090

2. 使用SVD分解,调用eig

 

Matlab实现手写数字识别(PCA+KNN)

PCA降维的个人学习笔记
  • sky247391475
  • sky247391475
  • 2016年06月18日 17:14
  • 5031

PCA的原理及MATLAB实现

相关文章PCA的原理及MATLAB实现UFLDL教程:Exercise:PCA in 2D & PCA and Whitening----------------------------本文参考: ...
  • jiandanjinxin
  • jiandanjinxin
  • 2016年01月28日 02:02
  • 10416

在matlab中实现PCA算法

function [V,S,E]=princa(X) [m,n]=size(X); %计算矩阵的行m和列n   %-------------第一步:标准化矩阵-----------------% mv...
  • haoji007
  • haoji007
  • 2016年12月29日 00:04
  • 1117

PCA原理分析和Matlab实现方法(三)

PCA主成分分析原理分析和Matlab实现方法(三) PCA算法主要用于降维,就是将样本数据从高维空间投影到低维空间中,并尽可能的在低维空间中表示原始数据。PCA的几何意义可简单解释为: ...
  • guyuealian
  • guyuealian
  • 2017年03月30日 17:03
  • 5214

PCA检测人脸的简单示例_matlab实现

[plain] view plaincopy %训练   %Lx=X'*X   clear;   clc;   train_path='..\Data\Train...
  • tianchang2you
  • tianchang2you
  • 2014年10月23日 10:05
  • 472

[机器学习]PCA主成分分析原理分析和Matlab实现方法

转载于http://blog.csdn.net/guyuealian/article/details/68487833 网上关于PCA(主成分分析)原理和分析的博客很多,本博客并不打算长篇大论推论P...
  • LuohenYJ
  • LuohenYJ
  • 2017年10月26日 19:48
  • 154

基于PCA的人脸识别_Matlab实现(个人研读之后的一些总结)

以下是我在查阅相关文献之后的一些个人的总结,望大神们指正。基于PCA的人脸识别PCA简介这是百度百科的解析: “对于一个训练集,100个对象模板,特征是10维,那么它可以建立一个100*10的矩阵,...
  • peterchan88
  • peterchan88
  • 2016年06月05日 20:29
  • 3588

PCA (主成分分析)matlab实现

一、简介         PCA(Principal Components Analysis)即主成分分析,是图像处理中经常用到的降维方法,大家知道,我们在处理有关数字图像处理方面的问题时,比如经常...
  • u013467442
  • u013467442
  • 2015年04月04日 21:59
  • 2187

主成分分析PCA的matlab实现

函数princomp实现了对PCA的封装,其常见调用形式为: [COEFF,SCORE,Latent]=princomp(x); 参数说明: *  x为原始样本组成的n×d的矩阵,其每一行是一个样本的...
  • vicie414
  • vicie414
  • 2014年12月03日 14:01
  • 645

PCA(Principal Component Analysis 主成分分析)原理及MATLAB实现

关于PCA的原理参见:PCA原理PCA:一种通过特征的线性组合来实现降维的方法,目的就是在尽可能好的代表原始数据的前提下,通过线性变换将样本数据投影到地位空间中。 如图示意,二维样本分别投影到e1、...
  • akadiao
  • akadiao
  • 2017年06月26日 21:35
  • 321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PCA的MATLAB实现
举报原因:
原因补充:

(最多只允许输入30个字)