02【评价类】模型——TOPSIS法(理想解法、优劣解距离法)

2023-12-15 04:20

本文主要是介绍02【评价类】模型——TOPSIS法(理想解法、优劣解距离法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

02【评价类】模型——TOPSIS法(理想解法、优劣解距离法) 

目录

02【评价类】模型——TOPSIS法(理想解法、优劣解距离法) 

一、引述

二、TOPSIS法的应用

2.1 决策矩阵正向化处理

2.1.1 效益型指标(极大型指标)

2.1.2 成本型指标(极小型指标)

2.1.3 区间型指标

2.1.4 中间型指标

2.1.5 问题解决 

2.2 正向化矩阵规范化处理

2.3 构造指标的权重向量

2.3.1 层次分析法求权重向量

2.3.2 熵权法求权重向量

2.3.3 默认权重向量

2.3.4 问题解决

2.4 求各方案到正、负理想解的距离

2.4.1 求正、负理想解

2.4.2 求各方案与正、负理想解的距离

2.4.3 求综合指标值

三、TOPSIS法程序实现

四、总结


一、引述

TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution) 可翻译为逼近理想解排序法,国内常简称为优劣解距离法 TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息, 其结果能精确地反映各评价方案之间的差距。

引例:研究生院试评估。
 为了客观地评价我国研究生教育的实际状况和各研究生院的教学质量,国务院学位委员会办公室组织过一次研究生院的评估。为了取得经验,先选5所研究生院,收集有关数据资料进行了试评估,图1-1是所给出的部分数据。

图1-1  研究生院试评估的部分数据

由此表格可得到决策矩阵为:

A=\begin{bmatrix} 0.1 & 5 & 5000 & 4.7\\ 0.2&6 &6000 & 5.6\\ 0.4& 6 &7000 &6.7 \\ 0.9 & 10 &10000 &2.3 \\ 1.2&2 & 400&1.8 \end{bmatrix}

 注:第i行第j列为a_{ij}

二、TOPSIS法的应用

2.1 决策矩阵正向化处理

2.1.1 效益型指标(极大型指标)

一个指标越大越好,则称为效益型指标或极大型指标;

比如:一个学生的成绩,国家的GDP,一个公司的利润等;本例中的“人均专著”即为效益型指标。

注:该指标为统一型指标,即下面三种指标需要正向化处理为该类型指标。

2.1.2 成本型指标(极小型指标)

一个指标越小越好,则称为成本型指标或极小型指标;

比如:一个工厂某种产品的成本,一个人的负面评价等;本例中的“科研经费”和“逾期毕业”即为成本型指标。

成本型指标转化成效益型指标的值x_{ij}为:

 x_{ij}=max-a_{ij}

或  x_{ij}=\tfrac{1}{a_{ij}}

2.1.3 区间型指标

一个指标的值落在某个区间最好,则称为区间型指标;

比如:人体温度(36~37℃);本例中的“生师比”即为区间型指标。

 区间型指标转化成效益型指标的值x_{ij}为:

M=\max \left\{a-\min \left\{p_{i}\right\}, \max \left\{p_{i}\right\}-b\right\},{x}_{ij}=\left\{\begin{array}{ll} 1-\frac{a-p_{i}}{M} & , p_{i}<a \\ 1 & , a \leq p_{i} \leq b \\ 1-\frac{p_{i}-b}{M} & ,p_{i}>b \end{array}\right.(j=1,2,...,n)

其中\left \{ p_{i} \right \}是一组区间型指标序列,且最佳区间为\left [ a,b \right ].

公式解释如下,

图2-1 区间型指标转化为效益型指标的公式解释图

根据公式以及图2-1可知,其中M的值为a-min\left \{ p_{i} \right \},即为图2-1中红色段的长度。对于公式的右半部分,以p_{i}<a的情况为例(即p_{i}落在红色段),a-{p_{i}}即表示p_{i}距离最佳区间\left [ a,b \right ]的距离,以该值作为分子,以距离最佳区间\left [ a,b \right ]的距离作为分母。则\tfrac{a-p_{i}}{M}表示与最佳区间\left [ a,b \right ]远近程度(离最佳区间\left [ a,b \right ]越远该值越大,越近该值越小),显然这是一个成本型指标,所以为了转化成效益型指标,我们用1减去\tfrac{a-p_{i}}{M}(即1-\tfrac{a-p_{i}}{M},显然\tfrac{a-p_{i}}{M}是属于\left [ 0,1 \right ]的),那么就将区间型指标转化成了效益型指标。下面的a\leqslant p_{i}\leqslant bp_{i}>b的情况同理可得。

2.1.4 中间型指标

一个指标越靠近某个中间值越好,则称为中间型指标;

比如:河水的PH值(PH=7)。

中间型指标转化为效益型指标的值x_{ij}为: 

M=max\left \{ \left | p_{i} -p_{best}\right | \right \},x_{ij}=1-\tfrac{\left | p_{i}-p_{best} \right |}{M} (j=1,2,...,n)

公式解释如下, 

图2-2 中间型指标转化为效益型指标的公式解释图

 根据公式以及图2-2可知,其中M的值为p_{best}-min\left \{ p_{i} \right \},即图2-2红色段的长度。公式的右半部分\left | p_{i}-p_{best} \right |即表示p_{i}p_{best}的距离并作为分子,p_{i}p_{best}的最大距离M作为分母;用\tfrac{\left | p_{i}-p_{best} \right |}M来描述p_{i}p_{best}远近程度p_{i}p_{best}距离越远该值越大,越近该值越小),显然这是一个成本型指标,因此我们用1减去\tfrac{\left | p_{i}-p_{best} \right |}M(即1-\tfrac{\left | p_{i}-p_{best} \right |}{M},显然\tfrac{\left | p_{i}-p_{best} \right |}M是属于\left [ 0,1 \right ]的)来将其转化为效益型指标

2.1.5 问题解决 

将决策矩阵正向化处理之后得到正向化矩阵:

X=\begin{bmatrix} 0.1&1 &5000 &2\\ 0.2 &1 &4000& 1.1\\ 0.4 &0.75& 3000& 0\\ 0.9 &0& 0 &4.4\\ 1.2 &0.25&9600& 4.9\\ \end{bmatrix}

其中x_{ij}可由(2.1.2,2.1.3和2.1.4)中的公式求得。

2.2 正向化矩阵规范化处理

为了去除量纲的影响,因此我们需要对已得到的正向化矩阵进行规范化处理,得到规范化矩阵:

 B=\begin{bmatrix} 0.0638 &0.6172 &0.4194 &0.2869 \\ 0.1275 &0.6172 &0.3355 & 0.1578 \\ 0.2550 &0.4629& 0.2516 &0\\ 0.5738 & 0&0 &0.6313 \\ 0.7651 &0.1543 &0.8052 &0.7030 \\ \end{bmatrix}

其中b_{i j}=x_{i j} / \sqrt{\sum_{i=1}^{n} x_{i j}^{2}}.

上面公式可解释为,规范化矩阵的每一个元素即为正向化矩阵的对应元素/

2.3 构造指标的权重向量

2.3.1 层次分析法求权重向量

求权重向量即为各指标求其所占权重\omega_{j},我们首先根据成对比较阵标度表对指标两两进行比较,从而得到判断矩阵(成对比较矩阵),然后依照层次分析法的步骤流程来得到权重向量,

w=\left [ \omega _{1} ,\omega _{2} ,...,\omega _{n} \right ]^{T}

其中,\omega_{j}的具体求法请参照本系列其他文章(01层次分析法)。

2.3.2 熵权法求权重向量

具体求法请参照本系列的其他文章(03熵权法)。

2.3.3 默认权重向量

若不采取上面两种方法构造权重向量,则采取默认权重向量,

w=[\tfrac{1}{n},\tfrac{1}{n},...,\tfrac{1}{n}]

其中,n为决策矩阵的列数,即指标的个数。

2.3.4 问题解决

在本引例中,采取默认权重向量,即

w=[\tfrac{1}{4},\tfrac{1}{4},...,\tfrac{1}{4}].

在求得规范化矩阵B和指标的权重向量w后可得到加权规范阵:

C=\begin{bmatrix} 0.0159 &0.1543 & 0.1048 & 0.0717 \\ 0.0319 & 0.1543 & 0.0839 &0.0395 \\ 0.0638 &0.1157 &0.0629& 0\\ 0.1435 &0& 0 &0.1578 \\ 0.1913 &0.0386& 0.2013 & 0.1758\\ \end{bmatrix}

其中,c_{ij}=b_{ij}\cdot w_{j},(i=1,2,...,m;j=i,2,...,n)

2.4 求各方案到正、负理想解的距离

2.4.1 求正、负理想解

正理想解为:

C^{+}=\begin{bmatrix} 0.1913 & 0.1543& 0.2013& 0.1758 \end{bmatrix}

其中,c_{j}^{+}=max\left \{ c_{ij} \right \},(i=1,2,...,m)

 正理想解即位每个指标在各方案之间的最大值。

负理想解为:

C^{-}=\begin{bmatrix} 0.0159 &0 &0 & 0 \end{bmatrix}

其中, c_{j}^{-}=min\left \{ c_{ij} \right \},(i=1,2,...,m)

负理想解即位每个指标在各方案之间的最小值。

2.4.2 求各方案与正、负理想解的距离

d^{+}=\begin{bmatrix} 0.2255 \\ 0.2404 \\ 0.2604 \\ 0.2587 \\ 0.1157 \\ \end{bmatrix}

其中,d_{i}^{+}=\sqrt{\sum_{j=1}^{n}\left(c_{j}^{+}-c_{i j}\right)^{2}}.

d^{-}=\begin{bmatrix} 0.1999 \\ 0.1807 \\ 0.1401 \\ 0.2029 \\ 0.3219 \end{bmatrix}

其中, d_{i}^{-}=\sqrt{\sum_{j=1}^{n}\left(c_{j}^{-}-c_{i j}\right)^{2}}

这里的与正、负理想解的距离采用的是欧几里得距离(欧氏距离)。

2.4.3 求综合指标值

在求得各方案与正负理想解的距离后,则可以得到各个方案的综合指标值(即各方案得分):

R=\begin{bmatrix} 0.4698 \\ 0.4292 \\ 0.3499 \\ 0.4395 \\ 0.7356 \end{bmatrix}

其中 r_{i}=\tfrac{d_{i}^{-}}{d_{i}^{-}+d_{i}^{+}}.

再将综合指标归一化,

\tilde{R}=\begin{bmatrix} 0.1938 \\ 0.1770 \\ 0.1443 \\ 0.1813 \\ 0.3035 \end{bmatrix}

其中,\tilde{r_{i}}=r_{i}/\sum_{i=1}^{m}r_{i}.

由数据可知,第5所研究院的综合指标值(0.3035)最高。

归一化:归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或[-1,1]),从而消除奇异样本数据导致的不良影响。奇异样本数据是指相对于其他输入样本特别大或特别小的样本值。(标准化,规范化又是什么呢?)

三、TOPSIS法程序实现

TOPSIS法的代码实现如下:

//FileName:G_TOPSIS.m(主程序)

%% TOPSIS
% 程序的预处理部分
clear;clc;
disp('请输入决策矩阵');
A=input('A=');
disp('请输入各列的指标类型(1.效益型,2.成本型,3.区间型,4.中间型):');
Type=input('Type=');
[n1,n2]=size(A);%% 决策矩阵正向化处理
% 将成本型、区间型和中间型指标转化为效益型指标
X=zeros(n1,n2);
for i=1:n2switch Type(i)case 1X(:,i)=A(:,i);case 2X(:,i)=G_Min2Max(A(:,i));case 3disp('请输入区间的上下界a,b:');a=input('a=');b=input('b=');X(:,i)=Inter2Max(A(:,i),a,b);case 4disp('请输入最好值value:');value=input('value=');X(:,i)=Mid2Max(A(:,i),value);otherwisedisp('您输入的Type中的数据包含不属于1~4的数据,请修改!');       end
end%% 正向矩阵规范法处理
% 为了将已正向化的矩阵消除量纲的影响,则需要对其进行规范化处理
sum_X=sqrt(sum(X.*X));
B=X./repmat(sum_X,n1,1);%% 求加权规范矩阵
% 一个方案的各指标的重要程度不同,则需要对各指标赋予权值
% 构造权重向量主要方法有:层次分析法,熵权法和默认方法
weigh=ones(1,n2)./n2;%默认方法
C=B.* repmat(weigh,n1,1);%% 计算与正负理想解的距离
C_up=max(C);% C_up(j)表示第j个指标的正理想解
C_down=min(C);
temp1=C-repmat(C_up,n1,1);%temp1为cij-C_up(j)的差值
temp2=C-repmat(C_down,n1,1);
D_up=sum(temp1.^2,2).^0.5;%D_up(i)即为第i个方案与正理想解的距离
D_down=sum(temp2.^2,2).^0.5;
result=D_down./(D_up+D_down);%计算各方案的综合指标
disp('result=');
disp(result);
[sort_result,index]=sort(result,'descend');
disp('sort_result=');
disp(sort_result);
disp('index');
disp(index);

下面三个代码段为正向化处理时所用到的函数: 

 //FileName:G_Min2Max.m(成本型\rightarrow效益型)

function [f1]=G_Min2Max(X)
% X表示需要正向化的决策矩阵的某一列[n1,~]=size(X);f1=repmat(max(X),n1,1)-X;
end

  //FileName:G_Min2Max.m(区间型\rightarrow效益型) 

function [f2]=G_Inter2Max(X,a,b)
% X表示需要正向化的决策矩阵的某一列
% a,b分别表示最佳区间的上下限M=max([a-min(X),max(X)-b]);%向量X中的所有元素与最佳区间[a,b]的最远距离f2=ones(size(X),1);for i=1:size(X)if i<af2(i)=1-(a-X(i))/M;%当X(i)小于a时的公式elseif i>bf2(i)=1-(X(i)-b)/M;elsef2(i)=1;endend
end

   //FileName:G_Min2Max.m(中间型\rightarrow效益型) 

function [f3]=G_Mid2Max(X,value)
% X表示需要正向化的决策矩阵的某一列
% value表示处于中间的最好值M=max(abs(X-value));f3=1-abs(X-value)/M;
end

四、总结

用TOPSIS法解决评价类问题时整体实现的流程:

图4 TOPSIS实现流程图

小结: 

  1. TOPSIS法是对于各指标的数据都是已知的,而层析分析法的几乎没有任何数据;
  2. 因为熵权法存在缺陷,所以平时发表论文时一般不使用,而数模比赛时可以用。

疑问:

  1. 归一化、标准化和规范法有什么异同?
  2. 在写论文时,需要对指标正向化的公式进行解释吗? 

  结束语:本文部分内容来自于B站“数学建模学习交流”以及疯学网数学建模系列教程

  

这篇关于02【评价类】模型——TOPSIS法(理想解法、优劣解距离法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/495097

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者