【综合评价分析】topsis评价 原理+完整MATLAB代码+详细注释+操作实列

news2024/11/24 22:36:39

【综合评价分析】topsis评价 原理+完整MATLAB代码+详细注释+操作实列

文章目录

1、TOPSIS法的原理

2、TOPSIS法案例分析

3.建立模型并求解

3.1数据预处理

3.2代码实现数据预处理

3.3 本案例中数据预处理的运用

4.计算距离和评价指标

4.1 代码

4.2 运行结果

5.总结


1、TOPSIS法的原理

       设多属性决策方案(单元)为D={d1,d2,…,dm},衡量方案优劣的属性变量为x1,x2,…,xn,这些方案D中的每个方案di(i=1,2,…)的n个属性构成向量[ai1,ai2,…,ain],将其作为n维空间的一个点,能唯一地代表方案di

       正理想解C*是一个方案D中不存在的虚拟最佳方案,它的每个属性都是决策矩阵中该属性的最优值;而负理想解C0则是虚拟的最差方案,它的每个属性都是决策矩阵中该属性的最差值。

       评价与决策原理:将D中每个备选方案di与正理想解C*和负理想解C0的距离进行比较,既靠近C*,又远离C0的方案是D中最优方案,并且可以据此排定D中各个备选方案的优先序。

       原理中距离的选取不同,也会影响排序和评价,TOPSIS法常用的是欧几里得距离

2、TOPSIS法案例分析

       为了客观评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位办组织过一此研究生院的评估。为了取得经验,先选了5所研究生院,收集有关数据进行了式评估,表1给出了部分数据。

i\指标j

人均专著x1(/人)

生师比x2

科研经费x3(万元/年)

逾期毕业率x4%

1

0.1

5

5000

4.7

2

0.2

6

6000

5.6

3

0.4

7

7000

2.3

4

0.9

10

10000

2.3

5

1.2

2

400

1.8

符  号

说      明

i

研究院标号;i=1,2,3,4,5;

j

评价指标标号,j=1,2,3,4

aij

i研究院的第j指标的数据;

bij

aij的规范化后的数据;

cij

加权规范数据;

wj

j指标的权重,j=1,2,3,4;

cj*

正理想解的第j指标;

cj0

负理想解的第j指标;

si*

i研究院与正理想解的距离;

si0

i研究院与负理想解的距离;

fi*

i研究院的排序指标

3.建立模型并求解

3.1数据预处理

       属性值具有多种类型,包括效益型,即越大越好;成本型,即越小越好;区间型,即属性值落在某个区间最佳。

       数据规范化的必要性: (1)属性的上述不同类型值放在同一个表中(矩阵)中不便处理,即不变直接从数值大小区分优劣;(2)非量纲化,多属性评估与决策的难点就是属性值的不可公度性,即每一列都有不同计量单位,需要排除量纲的选用对决策和评估的影响;(3)归一化,属性值表中不同指标的属性值数值大小差别比较大(可能是科学计数法造成),为了直观,更为了便于采用各种多属性决策与评估进行评价,需要把属性表中不同属性数值归一化,即把表中数据都处理到[0,1]区间上。

效益型数据处理(即越大越好)规范化公式(也归一化)

成本型数据处理(即数据越小越好)规范化公式

区间型数据处理公式

3.2代码实现数据预处理

%数据预处理方法:线性归一化
%a为处理数据矩阵 u为选择处理方法 1为效益型 2为成本型 3为区间型 qujian为效益形中的最优属性区间 rennai为忍耐上下限区间
function b=topsis(a,u,qujian,rennai)
am1=min(a);am2=max(a);
% 效益型数据处理(即数据越大越好)
if u==1
    b=(a-am1)./(am2-am1);
% 成本型数据处理(即数据越小越好)
elseif u==2
    b=(am2-a)./(am2-am1);
% 区间型数据处理
elseif u==3
    n=length(a);
    for k=1:n
        if a(k)>=rennai(1)&a(k)<qujian(1)
            b(k)=1-(qujian(1)-a(k))/(qujian(1)-rennai(1));
        elseif a(k)>=qujian(1)&a(k)<=qujian(2)
            b(k)=1;
        elseif a(k)>qujian(2)&a(k)<=rennai(2)
            b(k)=1-(a(k)-qujian(2))/(rennai(2)-qujian(2));
        else
            b(k)=0;
        end
    end
end

3.3 本案例中数据预处理的运用

       本案中,人均专著就是效益型指标;科研经费是成本型指标;逾期毕业率是效益型指标;而生师比是区间型指标,因为生师比太大,一个老师所带研究生太多,就越糟;生师比越小也越浪费教师资源,情况也越糟。设最优区间为[5,6]。逾期毕业率为成本型指标。

A=[0.1 0.2 0.4 0.9 1.2;
   5 6 7 10 2;
   5000 6000 7000 10000 400;
   4.7 5.6 6.7 2.3 1.8];
A=A';
a1=A(:,1);a2=A(:,2);a3=A(:,3);a4=A(:,4);
b1=topsis(a1,1);
b2=topsis(a2,3,[5,6],[2,12]);
b3=topsis(a3,2);
b4=topsis(a4,2);
[b1,b2',b3,b4]

运行结果:

 

i\指标j

人均专著x1(/人)

生师比x2

科研经费x3(万元/年)

逾期毕业率x4%

1

0

1

0.5208

0.4082

2

0.0909

1

0.4167

0.2245

3

0.2727

0.8333

0.3125

0

4

0.7273

0.3333

0

0.8980

5

1

0

1

1

4.计算距离和评价指标

4.1 代码

A=[0.1 0.2 0.4 0.9 1.2;
   5 6 7 10 2;
   5000 6000 7000 10000 400;
   4.7 5.6 6.7 2.3 1.8];
A=A';
a1=A(:,1);a2=A(:,2);a3=A(:,3);a4=A(:,4);
b1=topsis1(a1,1);
b2=topsis1(a2,3,[5,6],[2,12]);
b3=topsis1(a3,2);
b4=topsis1(a4,2);
I=[1 1/3 2 3;3 1 4 2;1/2 1/4 1 2;1/3 1/2 1/2 1];
[x,y]=eig(I);
w1=x(:,1);
w=w1/sum(w1);
c1=b1*w(1);c2=b2'*w(2);c3=b3*w(3);c4=b4*w(4);
C=[c1,c2,c3,c4];
cx=[0.2494 0.4814 0.1482 0];
cL=[0 0 0 0.1210];
for k=1:5
    s1(k)=dist(C(k,:),cx');
    s2(k)=dist(C(k,:),cL');
end
f=s2./(s1+s2);
[s1',s2',f']

4.2 运行结果

研究院

正理想解距离S*

负理想解距离s0

综合指标f

1

0.2640

0.4929

0.6512

2

0.2442

0.4949

0.6696

3

0.2230

0.4270

0.6570

4

0.3760

0.2425

0.3920

5

0.4964

0.2901

0.3688

5.总结

    根据表55个研究院综合评价的优劣顺序为 2 3 1 4 5.

 

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

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

相关文章

基于Jsp的OA企业人事管理系统【论文、数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86500769 主要使用技术 SpringspringMVCmybatisjspccsjsMysqlTomcat 功能介绍 部门管理&#xff1a;支持对部门信息&#xff08;部门名称、部门类型、电话、传真、描述、上级部门&#xff…

外卖项目(项目优化1)10---缓存优化

优化前面已经创建好的项目&#xff1a;将一些问题进行优化处理。本节主要解决是下面的问题。 前面的的项目&#xff0c;是将短信验证码等数据缓存到session中&#xff0c;该部分进行优化后&#xff0c;是将数据内容缓存到Redis中。 目录 一、使用git管理代码&#xff08;对ID…

Guava环境设置

Guava本地环境设置 这部分指导如何下载和设置Java在机器上。请按照以下步骤来设置环境。 Java SE免费提供链接&#xff1a;下载Java。所以&#xff0c;根据操作系统下载对应版本。 按照说明下载java和运行.exe 在机器上&#xff0c;并按说明安装Java。一旦机器上安装了Java&…

Leetcode原题电话号码的字母组合的两种解法【BFS-DFS】

来源&#xff1a;LeetCode 第17题【公众号&#xff1a;数据结构和算法】 给定一个仅包含数字2-9的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意1不对应任何字母。 示例1&am…

浅析分布式数据库

前言 随着信息技术的迅猛发展&#xff0c;各行各业产生的数据量呈爆炸式增长&#xff0c;传统集中式数据库的局限性在面对大规模数据处理中逐渐显露&#xff0c;从而分布式数据库应运而生。分布式数据库是在集中式数据库的基础上发展起来的&#xff0c;是分布式系统与传统数据…

java刷题day 06

一. 单选题&#xff1a; 解析&#xff1a;最终类也叫密封类&#xff0c;是被final修饰的类&#xff0c;不能被继承 解析&#xff1a; A&#xff1a;6入&#xff0c;5 入&#xff0c;5出&#xff0c;4入&#xff0c;4出&#xff0c;3入&#xff0c;3出&#xff0c;6出&#xff0…

SpringBoot 封装 HBase 操作工具类

最近项目中用到了Hbase相关的操作并封装成工具类&#xff0c;我的Hbase服务器端版本是2.1.0&#xff0c;图示如下&#xff1a; 特此记录便于日后查阅。 一、pom.xml 依赖 <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-shaded-…

【C++】快速入门list的使用

文章目录一、引入二、构造三、迭代器四、增删查五、其他操作一、引入 list的本质是带头双向循环链表&#xff0c;对于带头双向循环链表我们可是比较熟悉的了。本文只对list的一些常用接口进行说明&#xff0c;对于其他一些接口可自行查看文档。 二、构造 void Test() {list<…

Simple Black-box Adversarial Attacks

Abstract 我们提出了一种有趣的简单方法&#xff0c;用于在黑盒环境中构建对抗性图像。 与白盒场景相比&#xff0c;构建黑盒对抗图像对查询预算有额外的限制&#xff0c;而有效的攻击至今仍是一个悬而未决的问题。 仅在连续值置信分数的温和假设下&#xff0c;我们的高效查询…

2022 计网复习简答题【太原理工大学】

考虑到在此期间&#xff0c;我可能也会发表一些与考试不相关的博文&#xff0c;为了避免大家错过考试相关内容&#xff0c;我特意弄了一个专栏《期末复习汇总》&#xff0c;大家以后可以直接到专栏里面去寻找期末复习资料。这里是计算机网络考试简答题总结&#xff0c;其余题型…

资本+商业模式+中国制造的出海跨境电商,走向世界!(Starday)

近年&#xff0c;伴随着新冠疫情的爆发&#xff0c;海外的社交隔离以及中国面对境外入关者的严格隔离政策都给中国投资者的出海投资踩下了刹车&#xff0c;出国考察及尽调都分外的艰难。但也因为这样的国际局势&#xff0c;跨境电商服务行业在海外疫情的催化下&#xff0c;中国…

PyTorch学习笔记-Non-linear Activations与Linear Layers

1. Non-linear Activations 非线性激活函数官方文档&#xff1a;Non-linear Activations。 有深度学习基础的同学应该知道最常用的非线性激活函数就是 ReLU 和 Sigmoid 函数&#xff0c;多分类问题会在输出层使用 Softmax 函数。这三个函数在 PyTorch 中分别为 nn.ReLU、nn.S…

推特自动发帖,快速提升人气

Twitter一直是所有类型企业和品牌的极其宝贵的营销工具。如果使用得当&#xff0c;它本身就能成为一种高效的营销工具。Twitter与其他社交媒体渠道&#xff0c;在营销策略以及工作方式方面略有不同&#xff0c;在品牌营销方面与利用Twitter做推广&#xff0c;就意味着随着您的动…

NNDL 作业10:第六章课后题(LSTM | GRU)

文章目录习题6-3 当使用公式(6.50)作为循环神经网络得状态更新公式时&#xff0c;分析其可能存在梯度爆炸的原因并给出解决办法.习题6-4 推导LSTM网络中参数的梯度&#xff0c;并分析其避免梯度消失的效果习题6-5 推导GRU网络中参数的梯度&#xff0c;并分析其避免梯度消失的效…

[附源码]Python计算机毕业设计Django餐馆点餐管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Apple ID 登录

Apple登录可以看做第三方登录的一种&#xff0c;即使用Apple ID登录&#xff0c;前提是你已经有了苹果开发者账号&#xff0c;直接进入主题吧。 添加App IDs 填写Bundle ID 勾选“Sign In with Apple” 创建Key 苹果将使用公钥/私钥对作为OAuth客户端机密&#xff0c;其中客…

【mongodb】重新整理mongodb中的各种操作

目录前言初始化封装基础方法增&#xff1a;向集合内添加一个文档增&#xff1a;向集合内一次添加多条文档删&#xff1a;删除一条文档删&#xff1a;删除多条文档删&#xff1a;清空某个集合的所有文档查&#xff1a;查询符合条件的文档查询某个集合内所有文档&#xff1a;定位…

python>>numpy(第二讲)

章节内容 元素操作 常用的方法 广播 数组形状操作 排序数组 目录 元素操作 一些常用的方法 广播 数组形状操作 数组排序 元素操作 生成元素a np.array([1,2,3,4]) b np.ones(4)1 生成一个原来数组的n倍生成一个所有元素均跟2次方有关的数组一个计算矩阵相乘的函数判断两个…

<Android开发> HAL层集成第三方so库

当我们需要在自己的代码中使用第三方提供的一些接口函数时&#xff0c;我们该如何加入&#xff1f;作者在写这比安文章前遇到了一个问题&#xff1a;需要在自己的HAL层中引用第三饭提供的算法库即so库&#xff1b;这个问题是作者第一次遇到&#xff0c;以往都是自己写一些代码编…

原宇宙之地产探索

前言 随着“元宇宙”的概念风靡全球&#xff0c;一股“炒房”之风也开始在元宇宙世界兴起&#xff0c;就连大家熟知的歌手林俊杰、Snoop Dogg也纷纷入局元宇宙。昂贵的元宇宙房价有些甚至高于北京的一套别墅价格。 元宇宙中的“炒房” 去年下半年&#xff0c;元宇宙房地产玩家竞…