关于matlab中princomp的使用说明讲解
%% test for princomp(Principal Component Analysis)
% 关于matlab中princomp的使用说明讲解小例子 by faruto
% 能看懂本程序及相关注释讲解的前提是您对PCA有一定的了解~O(∩_∩)O
% 2009.10.27
clear;
clc
%% load cities data
load cities
% whos
% Name Size Bytes Class
% categories 9x14 252 char array
% names 329x43 28294 char array
% ratings 329x9 23688 double array
%% box plot for ratings data
% To get a quick impression of the ratings data, make a box plot
figure;
boxplot(ratings,'orientation','horizontal','labels',categories);
grid on;
print -djpeg 1;
%% pre-process
stdr = std(ratings);
sr = ratings./repmat(stdr,329,1);
%% use princomp
[coef,score,latent,t2] = princomp(sr);
%% 输出参数讲解
% coef:9*9
% 主成分系数:即原始数据线性组合生成主成分数据中每一维数据前面的系数.
% coef的每一列代表一个新生成的主成分的系数.
% 比如你想取出前三个主成分的系数,则如下可实现:pca3 = coef(:,1:3);
% score:329*9
% 字面理解:主成分得分
% 即原始数据在新生成的主成分空间里的坐标值.
% latent:9*1
% 一个列向量,由sr的协方差矩阵的特征值组成.
% 即 latent = sort(eig(cov(sr)),'descend');
% 测试如下:
% sort(eig(cov(sr)),'descend') =
% 3.4083
% 1.2140
% 1.1415
% 0.9209
% 0.7533
% 0.6306
% 0.4930
% 0.3180
% 0.1204
% latent =
% 3.4083
% 1.2140
% 1.1415
% 0.9209
% 0.7533
% 0.6306
% 0.4930
% 0.3180
% 0.1204
% t2:329*1
% 一中多元统计距离,记录的是每一个观察量到中心的距离
%% 如何提取主成分,达到降为的目的
% 通过latent,可以知道提取前几个主成分就可以了.
figure;
percent_explained = 100*latent/sum(latent);
pareto(percent_explained);
xlabel('Principal Component');
ylabel('Variance Explained (%)');
print -djpeg 2;
% 图中的线表示的累积变量解释程度.
% 通过看图可以看出前七个主成分可以表示出原始数据的90%.
% 所以在90%的意义下只需提取前七个主成分即可,进而达到主成分提取的目的.
%% Visualizing the Results
% 结果的可视化
figure;
biplot(coef(:,1:2), 'scores',score(:,1:2),...
'varlabels',categories);
axis([-.26 1 -.51 .51]);
print -djpeg 3;
% 横坐标和纵坐标分别表示第一主成分和第二主成分
% 红色的点代表329个观察量,其坐标就是那个score
% 蓝色的向量的方向和长度表示了每个原始变量对新的主成分的贡献,其坐标就是那个coef.
关于matlab中princomp的使用说明讲解相关推荐
- matlab中利用princomp实现PCA降维
matlab中利用princomp实现PCA降维 在matlab中有函数princomp可以实现数据的降维,本文主要说明该函数的用法. PCA的作用: PCA(主成分分析法),主要用来对数据进行降维, ...
- MATLAB中神经网络train函数使用说明
MATLAB中神经网络train( )函数使用说明 函数的语法格式如下: [net, tr]=train(net, P, T, Pi, Ai): train( )函数用于训练创建好的感知器网络,事实上 ...
- matlab 中的三次样条插值函数spline使用说明
GSS第一篇博客文章 DA matlab 中的三次样条插值函数spline使用说明 spline(x,y,xx) matlab 中的三次样条插值函数spline使用说明 spline(x,y,xx) ...
- Matlab中linkage函数讲解
Matlab中linkage函数说明 一.参考资料 1.1 matlab中的linkage和cluster函数 1.2 官方linkage手册 二.通俗讲解 2.1 代码 data = [1 2;1 ...
- matlab中find函数的使用说明
matlab中如何统计一个矩阵M中零的个数 size(find(M==0),1) 原文:http://blog.sina.com.cn/s/blog_707b64550100rbh3.html fin ...
- matlab函数插值是什么意思,Matlab中插值函数汇总和使用说明
注:该文从链接地址http://blog.sciencenet.cn/blog-457143-679275.html转载. MATLAB中的插值函数为interp1,其调用格式为: yi= inte ...
- matlab中fval函数,收集整理Matlab中的linprog函数使用说明 | 学步园
linprog函数是用来求解线性规划问题,其中,f,x,b,beq,lb,ub为向量,A,Aeq为矩阵. a).x=linprog(f,A,b) 功能:求解最小化问题:min f*x,条件:A*x≤ ...
- 收集整理Matlab中的linprog函数使用说明
linprog函数是用来求解线性规划问题,其中,f,x,b,beq,lb,ub为向量,A,Aeq为矩阵. a).x=linprog(f,A,b) 功能:求解最小化问题:min f*x,条件:A*x ≤ ...
- matlab中的single是什么类型_MATLAB 中cell数据类型的使用方法
讲真,我觉得最好的说明文档是MATLAB 帮助文档.但是由于朋友们可能看英文费劲,或者更喜欢看我的用"人话"讲解MATLAB用法.下面我从一个MATLAB深度用户的角度来讲解一下M ...
最新文章
- 一篇文章了解Github和Git教程-AndroidStudio上传Github教程
- html div阴影向上,css3阴影向上缓动样式
- java四种访问权限
- 华为笔试题-磁盘容量排序
- mysql备份到制定目录_写一个脚本定时自动备份mysql到指定目录
- English trip EM2-LP-2A Around the world Teacher:Taylor
- Sandcastle Help File Builder(.NET帮助文档工具)的版本选择心得——支持VS2010至VS2015,高版本项目文件问题...
- oracle rac实例停止,oracle rac启停命令使用实例
- 解决SVG animation 在IE中不起作用
- 数据采集及采集工具八爪鱼的使用
- 25年面试官首次揭秘——世界500强面试题
- ai自动生成字幕软件有哪些?自动生成字幕软件推荐!
- dubbo暴露出HTTP服务
- Linux基础教程 (第二版) 第2版
- HTML基础笔记——head标签
- 前端+后端项目 - 论坛信息管理系统(Web+servlet+MySQL+JDBC)
- Flutter访问webservice
- 升级!鹏业云计价i20(西藏)软件V11.0.27版本
- lsdyna如何设置set中的node_list_如何监视 DOM 树的变动?
- 如何免费学习Python?分享我自己的学习经验