主成分分析(PCA)——matlab程序及函数详解

参考来源:

http://www.cnblogs.com/Hand-Head/articles/5156435.html

http://www.matlabsky.com/thread-11751-1-1.html

matlab帮助文档


程序源码下载链接http://download.youkuaiyun.com/detail/ckzhb/9903051

包含三个m文件:

drtool_pca:函数封装。不包括盒形图。
pca_test:matlab自带的例子——pca()函数
princomp_test:matlab自带的例子——princomp()函数


例子说明:

它使用了衡量美国329个城市生活质量的9个指标:气候、住房、健康、犯罪率、交通、教育、艺术、娱乐和经济。

对于各指标,越高表示越好,如高的犯罪指标表示低的犯罪率。

本文例子程序:

%% test for princomp(Principal Component Analysis)
% 20170706 BY Hubery_Zhang
clear;
clc;
%% load data set
load cities;
%% box plot forratings data
% To get a quickimpression of the ratings data, make a box plot
figure;
boxplot(ratings,'orientation','horizontal','labels',categories);
grid on;
%% pre-process
stdr =std(ratings);
sr =ratings./repmat(stdr,329,1);
%% use princomp
[coeff,score,latent,tsquare]= princomp(sr);
%% 如何提取主成分,达到降为的目的
% 通过latent,可以知道提取前几个主成分就可以了.
% 图中的线表示的累积变量解释程度.
% 通过看图可以看出前七个主成分可以表示出原始数据的90%.
% 所以在90%的意义下只需提取前七个主成分即可,进而达到主成分提取的目的.
figure;
percent_explained= 100*latent/sum(latent); %cumsum(latent)./sum(latent)
pareto(percent_explained);
xlabel('PrincipalComponent');
ylabel('VarianceExplained (%)');
%% Visualizing theResults
% 横坐标和纵坐标分别表示第一主成分和第二主成分
% 红色的点代表329个观察量,其坐标就是那个score
% 蓝色的向量的方向和长度表示了每个原始变量对新的主成分的贡献,其坐标就是那个coeff.
figure;
biplot(coeff(:,1:2),'scores',score(:,1:2),...
'varlabels',categories);
axis([-.26 1 -.51.51]);

程序详解:

1、std()函数

(1)std(A)——函数求解的是最常见的标准差,此时除以的是N-1,按照列求标注差即输出每一列的标准差。

(2)std(A,

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值