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

 

相关文章推荐

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

[plain] view plaincopy %训练   %Lx=X'*X   clear;   clc;   train_path='..\Data\Train...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

PCA降维的个人学习笔记

机器学习:KNN算法(MATLAB实现)

K-近邻算法的思想如下:首先,计算新样本与训练样本之间的距离,找到距离最近的K 个邻居;然后,根据这些邻居所属的类别来判定新样本的类别,如果它们都属于同一个类别,那么新样本也属于这个类;否则,对每个后...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

机器视觉开源代码集合

FROM:    http://www.cnblogs.com/einyboy/p/3594432.html 一、特征提取Feature Extraction: ...

关于PCA+KNN下的人脸识别

这相当于一个工作总结。         接触机器学习以后,首先感兴趣的就是PCA算法,通过降维将特征空间大大简化。并在matlab中写了下代码,本来想用C++实现,最后发现求特征向量还需要QR迭代法...
  • lskyne
  • lskyne
  • 2012年12月15日 19:15
  • 3064

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

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

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

PCA主成分分析原理分析和Matlab实现方法(三) PCA算法主要用于降维,就是将样本数据从高维空间投影到低维空间中,并尽可能的在低维空间中表示原始数据。PCA的几何意义可简单解释为: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PCA的MATLAB实现
举报原因:
原因补充:

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