网站首页 > 资源文章 正文
TOPSIS方法
TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution),可翻译为逼近理解排序法,国内简称为优劣解距离法。
TOPSIS法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能够精确的反映各评价方案之间的差距。
一、层次分析法回顾
层次分析法的局限:
- 评价体系的方案层(决策层)不能够太多,太多的话n会很大,判断矩阵和一致矩阵的差异可能会很大
- 并且RI的表格最多也只能有15个
- 判断矩阵实际上是我们自己填入的,但是假设指标的数据是已知的,我们应该如何利用这些已知数据让评价结果更加准确呢?比如说有以下待评价表格:
学生 | 加权成绩 | 工时数 | 课外决赛得分 |
江红 | 89.7 | 32 | 5 |
时迎春 | 86.5 | 20 | 4 |
陶玲 | 90.1 | 10 | 6 |
江春秀 | 82.6 | 12 | 3 |
... | ... | ... | ... |
二、例题引出
假设要对宿舍的四个人进行一个排名,排名能够很好地反映成绩的高低
姓名 | 成绩 |
小明 | 89 |
小张 | 60 |
小王 | 74 |
小红 | 99 |
此时我们对各位同学进行评分:
姓名 | 成绩 | 排名 | 修正后的排名 | 评分 |
小明 | 89 | 2 | 3 | 3/10=0.3 |
小张 | 60 | 4 | 1 | 1/10=0.1 |
小王 | 74 | 3 | 2 | 2/10=0.2 |
小红 | 99 | 1 | 4 | 4/10=0.4 |
因为进行打分的时候直接按照排名来进行打分,那么成绩高的人评分反而越低,所以我们需要对排名进行修正,休正之后即可进行正确的评分。
但是这样还有一个问题,就是对于最高分和最低分,我们修改他们的修改之后,他的评分可能不发生变化,显然这是不客观的,比如,小红的成绩修改为90,小张的成绩修改为10之后,他们的评分不会发生变化,但是他们的分数却发生了很大的变化,这不利于描述他们的实际关系。
此时又产生了一个比较好的想法:
我们使用如下方式来构造一个评分方式:
使用上述评分准则来重新对宿舍四人的成绩进行打分
姓名 | 成绩 | 未归一化的评分 | 归一化之后的评分 |
小明 | 89 | (89-60)/(99-60)=0.74 | 0.74/2.1=0.35 |
小张 | 60 | (60-60)/(99-60)=0 | 0/2.1=0 |
小王 | 74 | (74-60)/(99-60)=0.36 | 0.36/2.1=0.17 |
小红 | 99 | (99-60)/(99-60)=1 | 1/2.1=0.48 |
可以发现此时还是和刚刚一样,变化最后一名和第一名的成绩,他们的评分依然不会改变。因为他们本身就是最高分和最低分,只要保证他们是最高分和最低分去变化他们的成绩,他们的评分就一直是1和0。
但是值得注意的是,卷面的最高分和最低分应该是100和0,此时再来做评分以及归一化,可得到
姓名 | 成绩 | 未归一化的评分 | 归一化之后的评分 |
小明 | 89 | 0.89 | 0.28 |
小张 | 60 | 0.60 | 0.19 |
小王 | 74 | 0.74 | 0.23 |
小红 | 99 | 0.9 | 0.30 |
这个表格可以很好的做关联性,并且分数的变化会引起评分的变化,但在实际的使用中并不会使用这个评分标准,
- 首先,实际上大多数时候并不存在理论的上限和下限,如经济增长水平的指标:GDP增速
- 其次,评价的指标要远大于两个,而不是像例题中的成绩一项
- 最后,要评价的对象也远大于两个
所以,最常用的还是用已知数据的最大值和最小值来进行评价,即
三、问题拓展
新增加一个指标,从智商和情商两个方面来考察,成绩代表智商,与他人的争吵次数代表情商,现在来对下面的已知数据进行评价:
姓名 | 成绩 | 与他人争吵次数 |
小明 | 89 | 2 |
小张 | 60 | 0 |
小王 | 74 | 1 |
小红 | 99 | 3 |
成绩当然那时越高(大)越好,这样的指标称为极大型指标(效益性指标);与他人的争吵次数当然是越少(小)越好,这样的指标称为极小型指标(成本型指标)。
此时,两种指标不可能都使用上面的评价标准,
3.1指标正向化
所以,需要统一指标类型:将所有的指标转化为极大型指标称为指标正向化(最常用)
姓名 | 成绩 | 与他人争吵次数 | 正向化之后的争吵次数 |
小明 | 89 | 2 | 1 |
小张 | 60 | 0 | 3 |
小王 | 74 | 1 | 2 |
小红 | 99 | 3 | 0 |
指标类型 | 极大型 | 极小型 | 极大型 |
极小型指标转化为极大型指标的方法:max-x
3.2 标准化处理
姓名 | 成绩 | 正向化之后的争吵次数 |
小明 | 89 | 1 |
小张 | 60 | 3 |
小王 | 74 | 2 |
小红 | 99 | 0 |
指标类型 | 极大型 | 极大型 |
就是说两个指标现在都是极大型指标了,我们能不能直接加和来进行评分呢?
显然是不能的,因为这两个指标的量纲不同,成绩为(分),争吵次数为(次)
对正向化矩阵进行标准化处理:消去不同量纲对不同指标的影响
标准化处理的计算公式:
假设有n个要评价的对象,m个评价指标(已经进行了指标正向化)构成的正向化矩阵如下:
那么,对其标准化的矩阵记为Z,Z中的每一个元素:,对X中的列元素平方求和开根号
经过标准化就变成了
代码为:
X = [89 1;60 3; 74 2; 99 0];
[n, m] = size(X)
standard_Z = X./repmat(sum(X.*X).^0.5,n,1)
3.3计算得分
此时我们得到了标准化之后的矩阵:
姓名 | 成绩 | 争吵次数 |
小明 | 0.5437 | 0.2673 |
小张 | 0.3665 | 0.8018 |
小王 | 0.4520 | 0.5345 |
小红 | 0.6048 | 0 |
指标类型 | 极大型 | 极大型 |
只有一个指标的时候,评价公式为:
对其变形得到
可看作是
类比于只有一个指标来计算得分:
假设有n个要评价的对昂,m个评价指标的标准化矩阵:
定义最大值和最小值
就是对每列求出最大值和最小值
定义第i(i=1,2,...,n)个评价对象与最大值的距离为
定义第i(i=1,2,...,n)个评价对象与最小值的距离为
那么,我们可以计算出第i(i=1,2,...,n)个评价对象为归一化的得分:
很明显,即越大越小,即越接近最大值。
解例题
对于刚刚的题目,我们可以做出如下解答,首先我们得到标准化之后的矩阵:
姓名 | 成绩 | 争吵次数 |
小明 | 0.5437 | 0.2673 |
小张 | 0.3665 | 0.8018 |
小王 | 0.4520 | 0.5345 |
小红 | 0.6048 | 0 |
所以:
最大值Z+ = [0.6048, 0.8018],最小值Z- = [0.3665, 0]
对于小张、小王和小红依次计算即可
代码如下:
X = [89 1; 60 3; 74 2; 99 0];
[n, m] = size(A);
Z = X ./ repmat(sum(X.*X).*0.5, n, 1);
D_P = sum([(Z - repmat(max(Z),n,1).^2], 2) .^0.5 %D+向量
D_N = sum([(Z - repmat(max(Z),n,1).^2], 2) .^0.5 %D-向量
算出每位同学的D+,D-,我们就可以利用公式计算未归一化之后的得分:
姓名 | D+ | D- | 未归一化的得分 | 归一化的分 | 排名 |
小明 | 0.5380 | 0.3206 | 0.3734 | 0.1857 | 3 |
小张 | 0.2382 | 0.8018 | 0.7709 | 0.3834 | 1 |
小王 | 0.3078 | 0.5413 | 0.6375 | 0.3170 | 2 |
小红 | 0.8018 | 0.2382 | 0.2291 | 0.1139 | 4 |
我们发现原本第一名的小红变成了第四名,why?不要慌,因为TOPSIS就是优劣解距离,优解就是最大值嘛,劣解就是最小值嘛。
四、TOPSIS介绍
C.L.Hwang和K.Yoon于1981年首次提出TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution),可翻译为逼近理想解排序法,国内常简称为优劣解距离法。 TOPSIS法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。 基本过程为先将原始数据矩阵统-指标类型(一 般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
第一步:将原始矩阵正向化
常见的四种指标:
指标名称 | 指标特点 | 例子 |
极大型指标 | 越大(多、高)越好 | 成绩、GDP增速、利润 |
极小型指标 | 越小(少、低)越好 | 成本、废品率 |
中间型指标 | 越接近某个值越好 | PH值 |
区间型指标 | 落在某个区间最好 | 体温 |
所谓的将原始矩阵正向化,就是要将所有的指标类型统一为极大型指标。(转换的函数形式不唯一)
极小 -> 极大
转换函数:max-x或者1/x(所有元素为正数时)
中间 -> 极大
中间型指标:不要太大也不要太小,取某个特定值最好(如PH值)
是一组中间型指标序列,且最佳的数值为,那么真相画的公式如下:
例如,有一组中间型指标,,所以M = 2
PH值(转换前) | PH值(转换后) |
6 | 1-|6-7|/2 = 1/2 |
7 | 1-|7-7|/2 = 1 |
8 | 1-|8-7|/2 = 1/2 |
9 | 1-|9-7|/2 = 0 |
区间 -> 极大
区间型指标:直播落在某个区间最好,比如人体温度在36-37这个区间比较好。
\{x_i\}是一组中间型指标,且最佳的区间为[a,b],那么正向化的公式如下:
例如,有一组区间型指标,a = 36, b= 37 ,求得M = 1.4
体温(转换前) | 体温(转换后) |
35.2 | 0.4286 |
35.8 | 0.8571 |
36.6 | 1 |
37.8 | 0.4286 |
38.4 | 0 |
第二步 正向化矩阵标准化
假设有n个要评价的对象,m个评价指标(已经进行了指标正向化)构成的正向化矩阵如下:
那么,对其标准化的矩阵记为Z,Z中的每一个元素:,对X中的列元素平方求和开根号
第三步 计算得分并归一化
假设有n个要评价的对昂,m个评价指标的标准化矩阵:
定义最大值和最小值
就是对每列求出最大值和最小值
定义第i(i=1,2,...,n)个评价对象与最大值的距离为
定义第i(i=1,2,...,n)个评价对象与最小值的距离为
那么,我们可以计算出第i(i=1,2,...,n)个评价对象为归一化的得分:
很明显,即越大越小,即越接近最大值。
五、模型拓展
我们之前默认各个指标权重相同,但是实际中,m个指标可能会有不同的权重。
只需要将上述第三部中的D+、D-做出变化,乘一个即可
定义第i(i=1,2,...,n)个评价对象与最大值的距离为
定义第i(i=1,2,...,n)个评价对象与最小值的距离为
5.1 带权重的TOPSIS
这个权重我们可以使用上一节的层次分析法来确定各个指标的权重,此时,TOPSIS就变为带权重的TOPSIS
此时确定的各个权重
- 上一篇: 卷积神经网络推导-神经网络卷积运算公式
- 下一篇: python实现综合评价模型TOPSIS
猜你喜欢
- 2024-11-20 如何将指标正向化
- 2024-11-20 毕达哥拉斯犹豫模集的多种距离测度方法
- 2024-11-20 目次 |《农业工程学报》2023年10月第19期
- 2024-11-20 矩阵的标准化以及归一化
- 2024-11-20 安玲学记(177)——精读期刊论文1.引言
- 2024-11-20 数字化转型赋能:行业智能应用场景构建与升级,让数据更懂业务
- 2024-11-20 自动驾驶芯片性能评价指标:DMIPS,TOPS
- 2024-11-20 南极冰层下的生物秘密基地
- 2024-11-20 英国时尚泳装品牌Neena Swim Bikini-Tops系列 高清图片画廊
- 2024-11-20 西北农林科技大学朱德兰教授等:网式过滤器水头损失动态变化规律
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)