数学建模常用算法之主成分分析

数学建模常用算法之主成分分析

  • 引言
    • 步骤
    • 实例以及代码

引言

主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,且能反映出原始数据的大部分信息。

一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可以考虑使用主成分分析的方法对数据进行简化。(用较少的新变量替换原来较多的旧变量,并且使这些较少的新变量尽可能多的保留原来变量所反映的信息)

步骤

对数据进行标准化—>计算标准化样本的协方差矩阵—>计算R的特征值和特征向量—>计算主成分贡献率以及累计贡献率——>写出主成分——>根据系数分析主成分代表的意义

  1. 对数据进行标准化
    原始数据:
    在这里插入图片描述
    标准化数据:
    在这里插入图片描述

  2. 计算标准化样本的协方差矩阵
    在这里插入图片描述

  3. 计算R的特征值和特征向量
    在这里插入图片描述

  4. 计算主成分贡献率以及累计贡献率
    在这里插入图片描述

  5. 写出主成分
    在这里插入图片描述

  6. 根据系数分析主成分代表的意义
    在这里插入图片描述

实例以及代码

实例:企业综合实力排序

在这里插入图片描述

clc
clear all
A = xlsread("Coporation_evaluation.xlsx","B2:I16");
%数据标准化处理
a = size(A,1);
b = size(A,2);
for i=1:b
    SA(:,i)=(A(:,i)-mean(A(:,i)))/std(A(:,i));%SA是标准化之后的数据
end
%计算相关系数并计算特征值和特征向量
CM = corrcoef(SA);%相关系数
[V,D]=eig(CM);%V是特征向量矩阵,D是特征值对角矩阵
%disp(D)观察D中数据
for i=1:b
    DS(i,1)=D(b+1-i,b+1-i);%按D中数据进行降序排列
end
for i=1:b
    DS(i,2)=DS(i,1)/sum(DS(:,1));%计算贡献值
    DS(i,3)=sum(DS(1:i,1))/sum(DS(:,1));%计算累积贡献值
end

%选择主成分以及对应的特征向量
T = 0.9;%保留的信息
for i=1:b
    if(DS(i,3)>=T)
        Com_num=i;
        break;
    end
end
%提取对应特征向量
for i=1:Com_num
    PV(:,i)=V(:,b+1-i);
end

%计算得分
new_score=SA*PV;
for i=1:a
    total_score(i,1)=sum(new_score(i,:));%计算总得分
    total_score(i,2)=i;%标记编号
end
result_score=[new_score,total_score];
result_score=sortrows(result_score,-4);%按总分降序
disp("特征值,贡献率,累计贡献率")
DS
disp('阀值T对应的主成分数与特征向量:')
Com_num
PV
disp('主成分分数,其中第4列是总得分')
result_score

结果如下

特征值,贡献率,累计贡献率

DS =

    5.7361    0.7170    0.7170
    1.0972    0.1372    0.8542
    0.5896    0.0737    0.9279
    0.2858    0.0357    0.9636
    0.1456    0.0182    0.9818
    0.1369    0.0171    0.9989
    0.0060    0.0007    0.9997
    0.0027    0.0003    1.0000

阀值T对应的主成分数与特征向量:

Com_num =

     3


PV =

    0.3334    0.3788    0.3115
    0.3063    0.5562    0.1871
    0.3900   -0.1148   -0.3182
    0.3780   -0.3508    0.0888
    0.3853   -0.2254   -0.2715
    0.3616   -0.4337    0.0696
    0.3026    0.4147   -0.6189
    0.3596   -0.0031    0.5452

主成分分数,其中第4列是总得分

result_score =

    5.1936   -0.9793    0.0207    4.2350    9.0000
    0.7662    2.6618    0.5437    3.9717    1.0000
    1.0203    0.9392    0.4081    2.3677    8.0000
    3.3891   -0.6612   -0.7569    1.9710    6.0000
    0.0553    0.9176    0.8255    1.7984    5.0000
    0.3735    0.8378   -0.1081    1.1033   13.0000
    0.4709   -1.5064    1.7882    0.7527   15.0000
    0.3471   -0.0592   -0.1197    0.1682   14.0000
    0.9709    0.4364   -1.6996   -0.2923    2.0000
   -0.3372   -0.6891    0.0188   -1.0075   10.0000
   -0.3262   -0.9407   -0.2569   -1.5238    7.0000
   -2.2020   -0.1181    0.2656   -2.0545    4.0000
   -2.4132    0.2140   -0.3145   -2.5137   11.0000
   -2.8818   -0.4350   -0.3267   -3.6435    3.0000
   -4.4264   -0.6180   -0.2884   -5.3327   12.0000

结果:第9家最强,第12家最弱

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32601.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Boom 3D For Win如何进行安装、激活和换机?

Boom系列应用软件又迎来了一位新的“猛将”— 隆重升级的Boom 3D(Windows系统)!这款主打3D环绕音效的软件,既能使用在Windows设备上,也能使用在MAC设备上。Boom 3D既可以让你体验到高质量的3D环绕音效,也能…

分布式幂等问题解决方案

目录 一 背景 二 什么是幂等 三 解决方案三部曲 第一部曲:识别相同请求 第二部曲:列出并减少副作用的分析维度 第三部曲:识别细粒度副作用,针对性设计解决方案 四 总结 一 背景 分布式系统由众多微服务组成,微…

基于嵌入式ARM的工控机与X86工控机的比较

基于嵌入式ARM工控机相对于X86工控机的优点: (1)、功耗:这是ARM工控机最大的优点之一,一般的VIA的X86主板,功耗都在40W左右或者以上,而ARM工控机的功耗极低,DTU系列工控机功耗整体也只有1W左右。 (2)、发热…

docker安装mysql并且进行连接

1、拉取镜像、在linux中执行命令 docker pull mysql 2、运行容器、在linux中执行命令 docker run -d --name mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD123456 mysql3、 进入容器、在linux中执行命令 docker ps -a docker exec -it 2a85f05d4090 /bin/bash 4、登录docker中的m…

uniapp 详细封装缓存定时过期方法,详细使用过程

最近在开发一个uniapp的项目,中间我们需要给缓存定时,为了解决这个问题,封装了一个方法用来解决这个问题,当时遇到这个问题是因为在项目中要给阿里的OSS上传文件,上传之间先要向服务端请求获取授权,授权我们…

4.28 poll API介绍及代码编写

4.28 poll API介绍及代码编写 #include <poll.h> struct pollfd{int fd;//委托内核检测的文件描述符short events;//委托内核检测文件描述符的什么事件short revents;//文件描述符实际发生的事件 }; int poll(struct pollfd *fds,nfds_t nfds,int timeout);-参数&#x…

Learning C++ No.29 【右值引用实战】

引言&#xff1a; 北京时间&#xff1a;2023/6/7/9:39&#xff0c;上午有课&#xff0c;且今天是周三&#xff0c;承接之前博客&#xff0c;今天我又去帮我舍友签到早八&#xff0c;但愿这次不会被发现吧&#xff01;嘻嘻嘻&#xff01;并且刚刚发文有关对C11相关知识&#xf…

第八章 图像压缩

文章目录 第八章 图像压缩8.1基础知识8.1.1 编码冗余8.1.4图像信息的度量8.1.5保真准则8.1.6图像压缩模型8.17图像格式、容器和压缩标准 8.2一些基本的压缩方法8.2.1霍夫曼编码8.2.2Golomb编码8.2.3算术编码8.2.4LZW编码8.2.5行程编码8.2.6基于符号的编码8.2.7比特平面编码8.2.…

WebGIS 信息系统-系统实现

WebGIS 信息系统-系统实现 主界面基本模块地图基本管理模块地图属性主界面大纲视图实现创建选项菜单添加点击事件实现加载底图图层和定位图层完善这个类文件 主界面基本模块 (1 &#xff09;平移&#xff1a;单击按钮将鼠标置于平移状态&#xff0c;可用来清除当前图形操作工具…

人工智能 | 技能人才评价证书分析及人工智能/计算机类证书推荐

目录 简介技能人才评价证书相关介绍1. 国家职业资格证书2. 职业技能等级证书 推荐证书目录1. 计算机类的国家职业资格证书a. 证书推荐b. “软高***”和“PMP”的区别 2. 计算机类的职业技能等级证书a. 工信部认证b. 中国人工智能学会证书 专业证书的作用1. 抵税2. 领取职业技能…

全志V3S嵌入式驱动开发(USB camera驱动)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 soc和mcu的一个重要区别&#xff0c;就是soc会涉及到大量的音视频操作&#xff0c;当然音视频也就包括了camera摄像头这部分。v3s本身支持csi接口和…

ChatGPT:开放AI平台的最新进展和功能

第一章&#xff1a;引言 在过去的几年中&#xff0c;人工智能技术取得了长足的发展&#xff0c;其在各个领域的应用也日益广泛。而在AI技术中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是备受关注的领域之一。ChatGPT作为OpenAI的开放AI平台上的一项重要技术&am…

慕课:笔记

课程链接&#xff1a;直面JavaScript中的30个疑难杂症_JavaScript面试题-慕课网 第二章&#xff1a;数据类型 数据类型是每门编程语言的必修之课&#xff0c;你是否对JavaScript的数据类型和检测存在困惑&#xff0c;本章节将为你揭晓其中的奥秘&#xff0c;让你对数据类型有…

【Tableau案例】神奇宝贝属性及实力强弱|数据可视化

提前声明&#xff1a;神奇宝贝的数据分析仅供参考&#xff0c;不涉及对于神奇宝贝的各种评价&#xff0c;另外我是初学tableau&#xff0c;涉及到使用的tableau操作可能很简单&#xff0c;复杂的还掌握不熟练&#xff0c;之后会拿时间系统学习tabelau。 数据预处理 该数据集有…

CODESYS模拟量超限报警功能块

博途PLC模拟量超限报警功能块详细介绍请参看下面文章链接: PLC模拟量超限报警功能块_RXXW_Dor的博客-CSDN博客模拟量偏差报警功能块请参看下面文章:模拟量偏差报警功能块(SCL代码)_RXXW_Dor的博客-CSDN博客工业模拟量采集的相关基础知识,可以查看专栏的系列文章,这里不再赘…

OSPF故障定位没思路?照这篇抄就行

我的网工朋友大家好。 好久没聊OSPF技术了&#xff0c;相关基础且经典的内容&#xff0c;公众号陆陆续续分享过一些&#xff0c;趣味科普&#xff0c;面试考题&#xff0c;实验操作&#xff0c;都有涉及。 按照惯例&#xff0c;先给你整一波优质的往期内容&#xff1a; 《 5个…

Spring Boot之静态资源映射 | 超级详细,建议收藏

写在前面&#x1f525; 上几期&#xff0c;我们重点讲解了Spring Boot集成Swagger-UI实现在线API文档及美化UI界面&#xff0c;而这期&#xff0c;在 Web 应用中会都会涉及到大量的静态资源&#xff0c;例如 图片、JS、CSS 和 HTML 等。我们知道&#xff0c;Spring MVC 导入静态…

WebGIS 信息系统-主界面基本模块功能设计

文章目录 系统文件夹结构主界面地图基本管理模块功能设计手机定位模块功能设计经纬度路径生成功能设计导航模块功能设计用户管理模块功能设计 系统文件夹结构 为了使项目容易管理和维护&#xff0c;在开发之前需要确定项目的系统文件夹结构&#xff0c;即系统文件夹结构设计。…

C++ / QT 旅游产品管理系统

一、项目介绍 旅游产品管理系统 你是一家旅行社的 IT 主管&#xff0c;现在需要你设计并实现一个旅游产品管理系统。 1 &#xff09; 基本功能要求 * 实现基础界面&#xff1a; 参照现有的旅游产品管理系统&#xff1a;查看产品、选择产品、使用说明等内容 * 支持旅游产品…

用Python搭建监控平台详解

概要 监控和运维&#xff0c;是互联网工业链上非常重要的一环。监控的目的就是防患于未然。通过监控&#xff0c;我们能够及时了解到企业网络的运行状态。一旦出现安全隐患&#xff0c;你就可以及时预警&#xff0c;或者是以其他方式通知运维人员&#xff0c;让运维监控人员有时…