主成分分析(PCA)中,介绍了PCA的数学原理,其有用Matlab能够非常方便地对矩阵进行操作!

比方,用Matlab求多个样本的协方差矩阵、求矩阵的特征根和特征向量等。

以下介绍用Matlab实现PCA:

如果有4个样本A、B、C、D,每一个样本都是6维。

>> A=[1,2,3,4,5,6];

>> B=[1,3,5,7,9,9];

>> C=[2,3,4,6,7,8];

>> D=[3,4,6,7,8,9];

将这4个样本组合成一个矩阵Q,矩阵Q的每一行为一个样本。

>> Q=[A;B;C;D]





Q =





     1     2     3     4     5     6

     1     3     5     7     9     9

     2     3     4     6     7     8

     3     4     6     7     8     9



依据cov()函数,求训练样本的协方差矩阵W(注意W是对称的,也即W==W‘)

>> W=cov(Q)





W =





    0.9167    0.6667    0.8333    0.6667    0.4167    0.6667

    0.6667    0.6667    1.0000    1.0000    1.0000    1.0000

    0.8333    1.0000    1.6667    1.6667    1.8333    1.6667

    0.6667    1.0000    1.6667    2.0000    2.3333    2.0000

    0.4167    1.0000    1.8333    2.3333    2.9167    2.3333

    0.6667    1.0000    1.6667    2.0000    2.3333    2.0000

因为cov()函数是按行处理的,也即它觉得Q中每一行为一个样本,

所以假设Q写成Q=[A',B',C',D'](6*4的矩阵,每一列为一个样本),W将会为4*4的矩阵,显然不正确。

依据协方差矩阵求特征根v、特征向量d(d中每一列为特征根v相应的特征向量)

>> [d,v]=eig(W)





d =





   -0.0338    0.4409   -0.3021    0.3507   -0.7491    0.1704

   -0.1133   -0.8695   -0.2299    0.0334   -0.3427    0.2444

    0.0490    0.1429    0.1773   -0.8342   -0.2871    0.4092

   -0.5987    0.0439    0.5673    0.2998    0.0718    0.4720

   -0.1319    0.1552   -0.6568   -0.0176    0.4782    0.5460

    0.7796   -0.0563    0.2668    0.2998    0.0718    0.4720









v =





   -0.0000         0         0         0         0         0

         0    0.0000         0         0         0         0

         0         0    0.0000         0         0         0

         0         0         0    0.1169         0         0

         0         0         0         0    1.1473         0

         0         0         0         0         0    8.9024

假设要降到3维,那么依据特征根大小,选择前三个特征根相应的特征向量组合成6*3的投影矩阵----PCA投影矩阵!

Matlab实现PCA的更多相关文章

  1. 关于PCA的几何表示——MATLAB实现

    关于PCA的一道练习题.这个折腾了好久...终于做出来像样的图,开始的时候忘记对原始数据标准化,怎么也不对.经过标准化之后,做的图看着还可以,有错误请指出! MATLAB代码PCA.m: clear ...

  2. PCA算法学习(Matlab实现)

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

  3. 再谈协方差矩阵之主成分分析PCA

    上次那篇文章在理论层次介绍了下协方差矩阵,没准很多人觉得这东西用处不大,其实协方差矩阵在好多学科里都有很重要的作用,比如多维的正态分布,再比如今天我们今天的主角——主成分分析(Principal Co ...

  4. 【数学建模】day10-主成分分析

    0. 关于主成分分析的详细理解以及理论推导,这篇blog中讲的很清楚. 主成分分析是一种常用手段.这应该与因子分析等区别开来,重点在于理解主成分分析的作用以及什么情况下使用主成分分析,本文重点讲解如何 ...

  5. [ML] Feature Transformers

    方案选择可参考:[Scikit-learn] 4.3 Preprocessing data 代码示范可参考:[ML] Pyspark ML tutorial for beginners 本篇涉及:Fe ...

  6. 机器学习笔记----四大降维方法之PCA(内带python及matlab实现)

    大家看了之后,可以点一波关注或者推荐一下,以后我也会尽心尽力地写出好的文章和大家分享. 本文先导:在我们平时看NBA的时候,可能我们只关心球员是否能把球打进,而不太关心这个球的颜色,品牌,只要有3D效 ...

  7. PCA and kmeans MATLAB实现

    MATLAB基础知识 l  Imread:  读取图片信息: l  axis:轴缩放:axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 设置 x.y 和  ...

  8. MATLAB做主成分分析(PCA)

    简单的主成分分析.第一次见识PCA,我的认识是,尽量用更少的维度来描述数据,以达到理想(虽不是最好,但是''性价比''最高)的效果. %% 主成分分析降维 clear; % 参数初始化 inputfi ...

  9. matlab自带princomp(PCA降维方式)

    matlab 中自带的函数就不必怀疑. princomp:principal componet analysis (PCA). [COEFF,SCORE,latent,tsquare]=princom ...

随机推荐

  1. Swift - 设置网格UICollectionView的单元格间距

    要设置单元格cell的间距(水平间距,垂直间距)可进行如下设置: 方法1:在storyboard中设置 选择Collection View后在面板里设置Min Spacing相关属性(这里也可以设置单 ...

  2. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  3. Effective C++_笔记_条款06_若不想使用编译器自动生成的函数,就该明确拒绝

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 通常如果你不希望class支持某一特定机能,只要不声明对应函数就 ...

  4. spring mvc controller json数据

    项目中遇到个批处理,需要前台传递一个json格式对象数组,如下:var data={   "wos":[{"id":1,"satisfaction&q ...

  5. 以&运行在后台的程序,关闭terminal后,相应进进程自动关闭

    以&运行在后台的程序,关闭terminal后,相应进进程自动关闭

  6. 深入研究Clang(四) Clang编译器的简单分析

    作者:史宁宁(snsn1984) 首先我们确定下Clang编译器的详细内容和涵盖范围.之前在<LLVM每日谈之二十 Everything && Clang driver>中 ...

  7. [IOS]Setting Bundle + StoryBoard

    用storyboard添加一个导航栏,其中首页有一个switch,与setting联动,还有一个button,使用modal连接另一个viewControl,其上也有一个按钮,按下销毁本viewCon ...

  8. [每日一题] 11gOCP 1z0-052 :2013-08-30 差异的增量备份.....................................................A1

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10669381 正确答案:AD 执行增量备份操作时,首先需要的是增量基本备份(increme ...

  9. Opencv笔记(1) 命名规则数据结构(CvMat,...)

    网上搜索了很多,检查中发现的信息劣势,检查源代码 同Cv为类的开始.包含详细的数据不(仅存储指针) CvMat typedef struct CvMat { int type; int step; / ...

  10. RPC 的概念模型与实现解析(转)

    今天分布式应用.云计算.微服务大行其道,作为其技术基石之一的 RPC 你了解多少?一篇 RPC 的技术总结文章,数了下 5k+ 字,略长,可能也不适合休闲的碎片化时间阅读,可以先收藏抽空再细读:) 全 ...