TOPSIS算法

TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)

即逼近理想解排序法,或优劣解距离法


目录

1 TOPSIS算法的优势

2 引例

 3 算法步骤

3.1 第一步:原始矩阵正向化

3.1.1 极小型转到极大型

3.1.2 中间型到极大型

 3.1.3 区间型转极大型

 3.2 第二步:标准化(消除量纲)

3.3 第三步:归一化


1 TOPSIS算法的优势

这里对照层次分析法局限性来看

  1. 层次分析法中决策层不能太多,不然N太大,判断矩阵和一致性矩阵差异会很大,而且平均随机一致性指标RI的表格中n最多也只有15。
  2. 层次分析法中的数据是“专家”给出的,会有很强的主观性(从层次分析法的笔记可以看出来)。TOPSIS算法一般用于题目给好了数据,或者数据来的很客观,然后根据客观数据进行评价。

2 引例

 我们给出四个人的成绩与对应的排名:

 如果要依据排名进行评分的话,排名当然是越小越好,但是评分是越大越好,所以我们进行一个修正。

修正方法很简单捏,如上图所示, 评分其实就是归一化。

但是不难发现一个问题:

 即使小王和清风成绩发生了变化,评分也不会改变,也就是说刚刚的算法与成绩相关性不强。

那么我们不妨这样来评分:

 我们用每个人的成绩减去最小的成绩,得到一组新的数,但是数字太大了,我们再除以最大值减去最小值,这样子所有的数字就都存在于0到1之间了,最后归一化:

 但是这样子会出现一个问题,最后一名的评分永远是0,第一名的评分永远是1,无论他的成绩怎么变化,评分都不变,我们不妨设想一种这样子的解决办法:

 我们不使用样本最高分与最低分,我们用100和0,这样子得到如图:

 但是不难发现这种方法的问题:

  1. ⭐核心问题:不一定存在理论上的最大与最小,例如GDP增速。
  2. 比较对象中只有第一名和最后一名得分不变,其余都会变。
  3. 指标也往往不是一个方面,倘若指标大于两个,不变的情况就更少了(现在不理解没关系,接着看)。

现在我们加一个指标:

 可以看出两个指标有明显的区别:

成绩是越高越好,即极大型指标(效益型指标)

而与他人争吵的次数越少越好,即极小型指标(成本型指标)

那么为了方便处理,我们来统一一下类型:

即指标正向化(论文里用到的话要写明方法)

现在我们可以直接把成绩和争吵次数相加,然后计算得分嘛?

显然不可以,量纲都不一样,所以接下来我们消去量纲(标准化):

 即用元素除以所在列的元素平方和开根号

标准化后如下:

 但是如何计算得分呢?

我们先来看一下只有一个指标的时候

也就是所谓的优劣解距离

那我们类比一下:

假设矩阵n行m列,我们现在只要明确最小值是什么,最大值是什么,x与最小值的距离,x与最大值的距离就好。

 n个要评价的对象就是n行,m个评价的指标就是m列,那怎么定义最小值呢?

原来只有一个指标时,最小值就是那一列里面最小的,那现在我们把它拓展一下:

 我们把每列的最小值都拿出来,组成一个向量,这个就是我们的新的最小值(最大值同理)

那怎么定义x与最小值的距离呢?

比如我们取第i行,那第i个指标与最小值的距离,不就是欧氏距离嘛

 注意到这里默认权重是相同的

 从这里不难看出,想让成绩改变而得分不变,只有当正好每列最大值/最小值出现再同一行时才可能,而随着指标的增加,这种情况发生的概率会越来越小。

好的那么我们回到原来的问题:如何计算得分

 结果如下:

 

 

 3 算法步骤

3.1 第一步:原始矩阵正向化

最常见的四种指标:

而正向化就是统一成越大越好就行,转换形式不唯一

 

3.1.1 极小型转到极大型

 不过有0的话也没办法取倒数,这里主要是想说明转化方式不止一种。

 

3.1.2 中间型到极大型

 什么意思捏:

这样会让所有的数据都限制在0到1上

而越接近xbest就越好,我们就想让正向化之后的数据越大,那你看,如果Xi越接近Xbest,那样是不是绝对值会越小,那么再来一步极小型转极大型就可以了,即:

 

 例如:

 

 3.1.3 区间型转极大型

 与刚刚类似:

 距离区间越近得分越高,与刚刚思路一致,我们来看一个例子:

 

 

 3.2 第二步:标准化(消除量纲)

 

3.3 第三步:归一化

 关于权重问题,可以用层次分析法来确定权重,即带权重的TOPSIS方法。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TOPSIS法是一种用于综合评价的方法,可以利用原始数据信息准确地反映各评价方案之间的差距。它由C.L.Hwang和K.Yoon于1981年首次提出,也被称为逼近理想解排序法或优劣解距离法。 在使用TOPSIS法进行评价时,基本的过程包括以下几个步骤: 1. 将原始数据矩阵进行统一指标类型处理,通常是进行正向化处理,以确保各指标的方向一致。 2. 对正向化后的矩阵进行标准化处理,以消除各指标量纲的影响。 3. 找到最优方案和最劣方案,即在有限方案中找到最好和最差的方案。 4. 分别计算每个评价对象与最优方案和最劣方案之间的距离,以确定每个评价对象与最优方案的相对接近程度。 5. 根据计算结果,对评价对象进行排序,以确定其优劣程度。 对于使用Python实现TOPSIS法,可以使用NumPy等科学计算库进行矩阵运算和数学计算。具体实现涉及到数据处理、标准化、距离计算等步骤,可以根据实际需求选择合适的方法和函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python实现topsis法](https://blog.csdn.net/weixin_52300428/article/details/126309794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值