主成分分析(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. android优化原理

    时间换时间: 数据的异步载入 分批载入. 开机加速. 时间换空间:  分页. 空间换时间: everything.exe 音乐 图库 在开机启动后, sd卡被挂载 生成数据库. 空间换空间: 8G内存 ...

  2. Swift - 获取屏幕点击坐标下所有对象(SpriteKit游戏开发)

    对于场景内对象元件的点击响应,我们可以在场景的touchesBegan()方法中内统一处理. SKScene中touchesBegan()是响应屏幕点击的方法,在这里面我们可以先获取点击位置下所有的对 ...

  3. EasyUI - LinkButton 按钮控件

    效果: html代码: <div> <a href ="abc.html" id="btn">添加</a> </div ...

  4. JQuery+AJax - 无刷新使用验证码

    最终效果: 项目目录: Default.aspx前端代码: <%@ Page Language="C#" AutoEventWireup="true" C ...

  5. tomcat7 启动报错(转)

    不加载任何自己的项目启动即报错:   严重: Error deploying web application directory D:\tomcat7.0.30\webapps\docs java.l ...

  6. 多个haproxy 之间跳转

    C:\>ping wechatTest.winfae.com 正在 Ping wechatTest.winfae.com [120.55.118.6] 具有 32 字节的数据: 来自 120.5 ...

  7. MySQL内存表的特性与使用介绍 -- 简明现代魔法

    MySQL内存表的特性与使用介绍 -- 简明现代魔法 MySQL内存表的特性与使用介绍

  8. 一切皆为 JavaScript

    JavaScript起源于Netscape公司的LiveScript语言,这是一种基于对象和事件驱动的client脚本语言.最初的设计是为了检验HTML表单输入的正确性. 早些年,JavaScript ...

  9. Python语法

  10. Lisp的永恒之道 好文

    http://www.cnblogs.com/weidagang2046/archive/2012/06/03/tao_of_lisp.html