写在前面:
个人理解:针对存在多项指标,多个方案的方案评价分析方法,也就是根据已存在的一份数据,判断数据中各个方案的优劣。中心思想是首先确定各项指标的最优理想值(正理想值)和最劣理想值(负理想解),所谓正理想值是一设想的最好值(方案),它的的各个属性值都达到各候选方案中最好的值,而负理想解是另一设想的最坏的值(方案),然后求出各个方案与正理想值和负理想值之间的加权欧氏距离,由此得出各方案与最优方案的接近程度,作为评价方案的优劣标准,最后得到各个方案的优劣值。
目录
一、TOPSIS算法
1.1 TOPSIS算法的原理
1.2 TOPSIS算法的实现
二、数据预处理
2.1 数据正向化处理
2.1.1对于极小型指标的正向化处理
2.1.2 对于中间型指标的正向化处理
2.1.3对于区间型指标的正向化处理
2.2数据标准化处理
三、TOPSIS算法实现
3.1最优解与最劣解计算
3.2 TOPSIS评分计算
四、TOPSIS算法总结
4.1 TOPSIS算法实现步骤
五、TOPSIS算法示例与扩展
5.1 TOPSIS算法示例
5.2 TOPSIS算法扩展
六、程序源码
由于本文发在知乎上,目前CSDN没办法直接导入文档,所以本文可读性很差。强烈建议点击下面链接阅读原文:
TOPSIS(逼近理想解)算法原理详解与代码实现 - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/266689519
TOPSIS(逼近理想解)算法原理详解与代码实现 - 子木的文章 - 知乎
如有专业问题或者需要仿真可以点下面付费咨询链接。
知乎用户www.zhihu.com
一、TOPSIS算法
1.1 TOPSIS算法的原理
TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
为了对众多方案给出一个排序,在给出所有方案之后,可以根据这些数据,构造出一个所有方案组成的系统中的理想最优解和最劣解。而TOPSIS的想法就是,通过一定的计算,评估方案系统中任何一个方案距离理想最优解和最劣解的综合距离。如果一个方案距离理想最优解越近,距离最劣解越远,我们就有理由认为这个方案更好。那理想最优解和最劣解又是什么呢?很简单,理想最优解就是该理想最优方案的各指标值都取到系统中评价指标的最优值,最劣解就是该理想最劣方案的各指标值都取到系统中评价指标的最劣值。
理想最优解中的数据都是各方案中的数据,而不要选择方案中没有的数据,理想最劣解同理。
如何衡量某一个方案与理想最优解和最劣解的综合距离呢?
TOPSIS基本思想是用下面这个表达式进行衡量:
可以发现,如果方案取到了理想最优解,其表达式取值为1;如果方案取到了理想最劣解,其表达式取值为0。我们便可以用这个表达式来衡量系统中某一个方案距离理想最优解和最劣解的综合距离,也直接用它给方案进行打分。
当然这个公式只是一个基本的思路,实际上,为了更准确与合理,会对该公式进行优化。
1.2 TOPSIS算法的实现
在了解TOPSIS算法的基本思想后就是对相应参数的计算了,从上面的描述可以知道,除了要对该公式进行改进之外,因为涉及到数据之间的比较,还需要对方案数据进行处理,消除量纲以及范围太大带来的一系列问题。
二、数据预处理
2.1 数据正向化处理
在处理数据时,有些指标的数据越大越好,有些则是越小越好,有些又是中间某个值或者某段区间最好。我们可以对其进行“正向化处理”,使指标都可以像考试分数那样,越大越好。
将指标分为四类,如下表所示。
四类指标类型
正向化处理,就是将上述的四种指标数据进行处理,将其全部转化为极大型指标数据,这样我们计算时问题就少一点&#