当前位置:网站首页>主成分分析(MATLAB)
主成分分析(MATLAB)
2022-07-23 13:12:00 【Wolves_YY】
本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi
一、前言



二、主成分分析思想


三、 主成分分析计算步骤
计算步骤可放入论文中。
step1:对数据x标准化为X

step2:计算样本协方差矩阵(相关系数矩阵)

相关系数矩阵可美化后放入论文中,详见视频17:40 。
注:第一步和第二步在MATLAB中可直接一步到位。
step3:计算R的特征值和特征向量

step4:计算主成分贡献率和累计贡献率

step5:写出主成分,取累计贡献率超过80%的特征值所对应的主成分

step6: 根据系数分析主成分代表的意义

step7: 利用主成分的结果进行后续的分析

不能用于评价模型原因:降维是将有数据的指标进行减少,既然有数据何不用Topsis?

四、例题讲解

此题直接进行到了第二步,实际中不会这样。



五、主成分分析程序(MATLAB)
该数据为聚类数据
clear;clc
load data1.mat % 主成分聚类
% load data2.mat % 主成分回归
% 注意,这里可以对数据先进行描述性统计
% 描述性统计的内容见第5讲.相关系数
[n,p] = size(x); % n是样本个数,p是指标个数
%% 第一步:对数据x标准化为X
X=zscore(x); % matlab内置的标准化函数(x-mean(x))/std(x)
%% 第二步:计算样本协方差矩阵
R = cov(X);
%% 注意:以上两步可合并为下面一步:直接计算样本相关系数矩阵
R = corrcoef(x);
disp('样本相关系数矩阵为:')
disp(R)
%% 第三步:计算R的特征值和特征向量
% 注意:R是半正定矩阵,所以其特征值不为负数
% R同时是对称矩阵,Matlab计算对称矩阵时,会将特征值按照从小到大排列哦
% eig函数的详解见第一讲层次分析法的视频
[V,D] = eig(R); % V 特征向量矩阵 D 特征值构成的对角矩阵
%% 第四步:计算主成分贡献率和累计贡献率
lambda = diag(D); % diag函数用于得到一个矩阵的主对角线元素值(返回的是列向量)
lambda = lambda(end:-1:1); % 因为lambda向量是从小大到排序的,我们将其调个头
contribution_rate = lambda / sum(lambda); % 计算贡献率
cum_contribution_rate = cumsum(lambda)/ sum(lambda); % 计算累计贡献率 cumsum是求累加值的函数
disp('特征值为:')
disp(lambda') % 转置为行向量,方便展示
disp('贡献率为:')
disp(contribution_rate')
disp('累计贡献率为:')
disp(cum_contribution_rate')
disp('与特征值对应的特征向量矩阵为:')
% 注意:这里的特征向量要和特征值一一对应,之前特征值相当于颠倒过来了,因此特征向量的各列需要颠倒过来
% rot90函数可以使一个矩阵逆时针旋转90度,然后再转置,就可以实现将矩阵的列颠倒的效果
V=rot90(V)';
disp(V)
%% 计算我们所需要的主成分的值
m =input('请输入需要保存的主成分的个数: ');
F = zeros(n,m); %初始化保存主成分的矩阵(每一列是一个主成分)
for i = 1:m
ai = V(:,i)'; % 将第i个特征向量取出,并转置为行向量
Ai = repmat(ai,n,1); % 将这个行向量重复n次,构成一个n*p的矩阵
F(:, i) = sum(Ai .* X, 2); % 注意,对标准化的数据求了权重后要计算每一行的和
end
代码结果分析:

六、主成分分析用于聚类(SPSS)
这里的聚类和下面的回归可以详看视频。


这里的聚类是用的层次聚类

七、主成分分析用于聚类(Stata)


八、其他

边栏推荐
- YOLOV7
- 精确的目标检测中定位置信度的获取
- Direct exchange
- UiPath Studio Enterprise 22.4 Crack
- Basic auth plug-in based on apisik authorizes Minio file upload function
- 32位单片机GPIO端口电路结构以及输出模式
- 15001.系统设计方案
- 无心剑英汉双语诗006.《致爱妻》
- The competition boss is in Huawei: network experts are from Stanford physics department, and some people "work as much as reading a doctoral degree"
- ESP8266-NodeMCU——从苏宁API获取实时天气
猜你喜欢

Deep learning convolutional neural network paper study alexnet

The working principle of PLL. For example, how can our 8MHz crystal oscillator make MCU work at 48mhz or 72mhz

Chen Wei, head of CPU technology ecology of Alibaba pingtouge: the development road of pingtouge

go run,go build,go install有什么不同

fio性能测试工具
![[note] linear regression](/img/71/7c1255e94f08cc0eab2ca32977f29d.png)
[note] linear regression

基于APISIX的basic-auth插件对Minio文件上传功能进行授权

Convert.Calss file to.Jar idea

Oracle中实现删除指定查询条件的所有数据

Practice code - day one
随机推荐
pytest接口自动化测试框架 | 多进程运行用例
网络协议与攻击模拟:wireshark使用、ARP协议
fio性能测试工具
距离IoU损失:包围盒回归更快更好的学习(Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression)
15001.系统设计方案
FreeRTOS个人笔记-创建/删除动态任务,启动调度器
mysql的常见问题
MySQL multi table query_ Cartesian product_ Inner connection_ Implicit connection
IIS 部署.NetCore
Hcip datacom certification examination passed in July
系统内存介绍和内存管理
20220722 beaten record
Convert.Calss file to.Jar idea
SurFace家族选购参照
Visualization of gross domestic product (GDP) data
General paging function
Satisfiability of the equation of leetcode
Detector: detect objects with recursive feature pyramid and switchable atolos convolution
How to buy financial products with a return of more than 6%?
Go 接口:深入内部原理