Matlab实现PCA
在主成分分析(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的更多相关文章
- 关于PCA的几何表示——MATLAB实现
关于PCA的一道练习题.这个折腾了好久...终于做出来像样的图,开始的时候忘记对原始数据标准化,怎么也不对.经过标准化之后,做的图看着还可以,有错误请指出! MATLAB代码PCA.m: clear ...
- PCA算法学习(Matlab实现)
PCA(主成分分析)算法,主要用于数据降维,保留了数据集中对方差贡献最大的若干个特征来达到简化数据集的目的. 实现数据降维的步骤: 1.将原始数据中的每一个样本用向量表示,把所有样本组合起来构成一个矩 ...
- 再谈协方差矩阵之主成分分析PCA
上次那篇文章在理论层次介绍了下协方差矩阵,没准很多人觉得这东西用处不大,其实协方差矩阵在好多学科里都有很重要的作用,比如多维的正态分布,再比如今天我们今天的主角——主成分分析(Principal Co ...
- 【数学建模】day10-主成分分析
0. 关于主成分分析的详细理解以及理论推导,这篇blog中讲的很清楚. 主成分分析是一种常用手段.这应该与因子分析等区别开来,重点在于理解主成分分析的作用以及什么情况下使用主成分分析,本文重点讲解如何 ...
- [ML] Feature Transformers
方案选择可参考:[Scikit-learn] 4.3 Preprocessing data 代码示范可参考:[ML] Pyspark ML tutorial for beginners 本篇涉及:Fe ...
- 机器学习笔记----四大降维方法之PCA(内带python及matlab实现)
大家看了之后,可以点一波关注或者推荐一下,以后我也会尽心尽力地写出好的文章和大家分享. 本文先导:在我们平时看NBA的时候,可能我们只关心球员是否能把球打进,而不太关心这个球的颜色,品牌,只要有3D效 ...
- PCA and kmeans MATLAB实现
MATLAB基础知识 l Imread: 读取图片信息: l axis:轴缩放:axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 设置 x.y 和 ...
- MATLAB做主成分分析(PCA)
简单的主成分分析.第一次见识PCA,我的认识是,尽量用更少的维度来描述数据,以达到理想(虽不是最好,但是''性价比''最高)的效果. %% 主成分分析降维 clear; % 参数初始化 inputfi ...
- matlab自带princomp(PCA降维方式)
matlab 中自带的函数就不必怀疑. princomp:principal componet analysis (PCA). [COEFF,SCORE,latent,tsquare]=princom ...
随机推荐
- POJ 2594 Treasure Exploration(最小路径覆盖变形)
POJ 2594 Treasure Exploration 题目链接 题意:有向无环图,求最少多少条路径能够覆盖整个图,点能够反复走 思路:和普通的最小路径覆盖不同的是,点能够反复走,那么事实上仅仅要 ...
- Git Hub,eclipse pull 出现问题
一般在eclise里面使用geithub,之后会出现无法pull,或者pull 报错的问题.这里需要修改本地库的配置文件 The current branch is not configured fo ...
- 控件编写:增强 TMEMO (一)(增加对WM_HSCROLL消息的处理)
相信没有什么人对 MEMO 陌生了吧.尽管其组件的功能不错.但是,对它进行一些功能的改进,可以更好的使用. 有的时候,我们想要知道,当前的坐标是什么?甚至,想要在 滚动条滚动时触发一些事件. 但,TM ...
- cocos2d-x游戏开发系列教程-编译运行我们的第一个cocos2d-x游戏程序
环境准备和介绍: 操作系统:64位Windows 7 sp1(Microsoft Windows [版本 6.1.7601]) 必要的软件和源码: visual_studio_ultimate_201 ...
- acFileStorage equivalent
searching for a vcl that can enable embed any files within dfm similar to acfilestorage When there a ...
- 图解UML类与类之间的六中关系
大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency [di'pendənsi] 关联关系 association [ə,səuʃi' ...
- 【Demo 0002】Java基础-语句
本章学习要点: 1. 掌握Java关健语句使用方法; 2. 理解与语句相关的关键字用法; 一.Java 关键语句 Java语句以及关联关键字与C完全相 ...
- hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947
映射配置文件 好947 <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 --> <resultMap type="person" ...
- WinRarHelper帮助类
WinRarHelper帮助类 关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩 ...
- Delphi TStream 详细介绍
Delphi TStream 详细介绍Stream对象,又称流式对象,是TStream.THandleStream.TFileStream.TMemoryStream.TResourceStream和 ...