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

news2024/12/23 2:03:36

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

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

引言

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

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

步骤

对数据进行标准化—>计算标准化样本的协方差矩阵—>计算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家最弱

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习笔记 - vision transformer(ViT)简述

一、ViT简述 视觉转换器 vision_transformer(ViT) 因其令人印象深刻的准确率和计算效率而迅速成为卷积神经网络 (CNN) 在计算机视觉任务中的首选替代品。ViT模型在许多数据集和任务组合中的表现比CNN高出近4倍,从而确立了自己作为非常强大的竞争者的地位。 同样,基于转换…

采样中断服务程序原理

采样中断服务程序框图如图2-6所示。采样中断服务程序主要包括采样计算,TV、TA断线自检和保护起动元件三个部分。同时还可以根据不同的保护特点,增加一些检测被保护系统状态的程序。 一、采样计算概述 进入采样中断服务程序,首先进…

抖音林客服务商入驻申请

抖音林客服务商后台提供了以下主要功能: 数据报告:可以查看账户的广告投放、效果等数据报告,并进行数据分析和优化。 广告投放平台:可以创建和管理广告投放计划、定向和出价等设置,以及监控广告投放效果。 …

【032】C++高级开发之继承机制详解(最全讲解)

C的继承机制详解 引言一、继承和派生1.1、继承的概念和意义1.2、派生类的定义 二、继承中的构造和析构2.1、子类的构造和析构顺序2.2、子类调用成员对象、父类的有参构造 三、子类和父类的同名处理3.1、子类和父类同名成员数据3.2、子类和父类同名成员函数3.3、子类重定义父类的…

2.5C++多重继承

C 多重继承概述 C中的多重继承是指一个派生类可以从多个基类中继承属性和方法。 多重继承的作用是让 C 中的类更灵活地组合,以及实现代码的高复用。 多重继承的语法如下: access_specifier可以是public、protected或private,用来指定继承…

python学习——文本数据处理

目录 1 计算长度 len2 大小写 lower、upper、title、capitalize、swapcase3 字符检索 get、slice4 元素提取 findall、extract5 索引操作 find、index6 字符类型判断,结果一定是True或False7 字符判断 contains、startswith、endswith8 替换 replace9 字符的分割 split、partit…

鸿蒙HarmonyOS开发环境初识及搭建

一 鸿蒙简介 HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供…

A Sequence-to-Set Network for Nested Named Entity Recognition

原文链接: https://www.ijcai.org/proceedings/2021/0542.pdf IJCAI 2021 介绍 问题 将嵌套NER视为span分类任务存在两个缺陷,不仅搜索空间大还缺少了实体之间的交互。 IDEA 因此作者提出了sequence-to-set的模型,不再提前给定span&#x…

【数据分享】全国县市2000-2021年农业、工业数据(免费获取)

《中国县域统计年鉴》是一部全面反映我国县域社会经济发展状况的资料性年鉴,收录了上一年度全国2000多个县域单位的基本情况、综合经济、农业、工业、教育、卫生、社会保障等方面的资料。 之前基于《中国县域统计年鉴》我们分享了2000至2021年的综合经济数据&#…

详解eslint在vue中如何使用

ESLint在vue中的使用 阅读目录 .editorconfig文件(主要用于配置IDE).eslintignore文件(放置需要ESLint忽略的文件,只对.js文件有效).eslintrc.js 文件(用来配置ESLint的检查规则) ESLint的用途 1.审查代码是否符合编…

SwinTransformer与Vit细节总结

建议通过标题来快速跳转 Vit (Vision Transformer) Vit把图片打成了patch,然后过标准的TransformerEncoder,最后用CLS token来做分类 Vit的位置编码 作者在文中试了几种方式,发现这几种在分类上效果差不多 1-dimensional positional emb…

EMQ 明道云:零代码高效构建工业物联网设备管理平台

背景 智能物联网设备在 IIoT 场景中有着广泛的应用,但如何管理和监控这些设备是一个挑战。 明道云是一家专业的 hpaPaaS 平台服务商,其所开发的明道云平台(Mingdao Cloud)是一个企业软件设计和开发工具,让企业可以低…

[230608] 阅读TPO58汇总|7:30-9:00+17:05

目录 ​​​​​​​ TPO58 1 The Development of Instrumental Music [3]修辞目的题 举例说明的作用 [9]句子插入题 [10]小结题 2 Pinyon Pines and Pinyon Jays [4]否定事实信息题 [5]修辞目的题 段落在全篇的作用 [10]小结题 3 The Rise of Classic Maya Civi…

SecCertificate 解析

一、SecCertificate A digital certificate is a collection of data used to securely distribute the public half of a public/private key pair. 数字证书 1. 结构 2. 读取和存储 2.1 Identity var certificate: SecCertificate? let status SecIdentityCopyCertific…

12.分布式事务流程与事务消息源码分析

highlight: arduino-light Rocket事务流程&源码分析 Rocket解决分布式事务流程 事务消息分 2 个阶段: ① 正常事务消息的发送与提交: a.发送消息(half 消息) b.服务响应消息写入结果 c.根据发送结果执行本地事务(如果写入失败,此时half消…

Midjourney使用教程:三 图片风格提示

这里我根据现在的官方文档来继续我们的Midjourney的教程,看到这里如果你去实践的话,估计你已经有了好多张属于自己的图片。 这时候你不在满足简单的提示生成的Midjourney的默认风格图片,实际上你可以通过一些关键词做提示,来改变…

初始网络原理

目录 网络发展史 独立模式 网络互连 局域网LAN 广域网WAN 网络通信基础 IP地址 端口号 认识协议 五元组 协议分层 OSI七层模型 TCP/IP五层(或四层) 网络设备所在分层 封装和分用 网络发展史 独立模式 独立模式:计算机之间相互…

第八十三天学习记录:计算机硬件技术基础:汇编语言程序设计

一、汇编语言指令 汇编语言的语句是在指令系统的基础上形成的,按其作用与编译情况分为两大类:指令性语句(符号指令)和指示性语句(伪指令)。 指令性语句是可执行语句,与机器指令相对应&#xff…

USB转换方案介绍

随着科技的不断发展,我们的生活中出现了越来越多的电子设备。然而,这些设备通常具有不同的连接端口和协议,这可能会使它们之间的连接变得困难。这时候,使用USB转换就成为了一种非常方便和实用的解决方法。 无论是在家庭、办公室还…

自动化测试——处理场景自动化测试场景详细,跟着上高速

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、定位一组对象 …