IMMC2020:熵权TOPSIS
笔记整理来自清风老师的数学建模课程:TOPSIS教程
目录
1. 层次分析法的局限性(主观求权重方法)
2. TOPSIS法引入
2.1 一个指标的情况
2.2 2个指标的情况
2.2.1 指标正向化
2.2.2 指标标准化处理
2.2.3 计算得分
2.2.4 实例计算
3. TOPSIS简介
4. TOPSIS法步骤
4.1 将原始矩阵正向化(可以在Excel中完成)
4.1.1 极小型指标转换为极大型指标
4.1.2 中间型指标转换为极大型指标
4.1.3 区间型指标转换为极大型指标
4.2 正向化矩阵标准化
4.3 计算得分并归一化
5. 例题:评价水质情况
6. 代码讲解
6.1 将数据导入到MATLAB中
6.2 判断指标是否正向化
6.2.1 极小型指标正向化
6.2.3 中间型指标正向化
6.2.4 区间型指标正向化
6.2.5 指标正向化处理
6.3 对正向化后的矩阵进行标准化
6.4 计算得分并归一化(计算与最大值的距离和最小值的距离,并算出得分)
7. 模型拓展
1. 层次分析法的局限性(主观求权重方法)
层次分析法真正的核心是判断矩阵的填写,但是判断矩阵受人为因素比较大,所以最后计算得出的权重也比较主观。如果在有数据的情况下最好不要使用层次分析法。
(1)评价的决策层不能太多,太多的话n会很大,判断矩阵和一致性差异可能会很大。(可能会通过不了一致性检验)
请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。
(注:这里要求的评分可以类比于上一讲层次分析法中要求的那个权重)
可以随便修改成绩,只要保证排名不变,那么评分就不会改变!
【矛盾】评分没变说明结果有问题,说明这种评分方式不能够全部反应原始数据的全部信息。
想法1:把数都减去一个最小值。结果通过与(max-min)相处,将数字变为【0,1】之间的数。
需要说明的问题:如果用下面这种方法,虽然结果更加精确,能够反应更多的原始信息;比如60分时,我们得到的结果是0.6,而不是0。但是需要知道理论的最大值和最小值。
但是大多数情况下,我们是无法知道理论的最大值与最小值的,只能得到1组数据中的最大值与最小值,所以常用的评分方法是上一种。
2.2 2个指标的情况
新增加了一个指标,现在要综合评价四位同学,并为他们进行评分。
可以发现标准化后不会影响到指标的相对大小。
matlab代码:B = repmat(A,m,n):将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。
代码分解:
得到
得到
得到
由于矩阵(点除)除法的运算需要行列一致。
计算多个指标的得分时,可以类别只有一个指标时的得分。
结果如下:
所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为 极大型指标。(转换的函数形式可以不唯一哦~ ) 多指标综合评价中指标正向化和无量纲化方法的选择
4.1.1 极小型指标转换为极大型指标
化简后的结果尽量在[0,1]之间。并且越靠近于最优值(这里为7)越接近于1.
4.1.3 区间型指标转换为极大型指标
【注意】标准化的方法有很多种,其主要目的就是去除量纲的影响,未来我们还可能见到更多 种的标准化方法,例如:(x‐x的均值)/x的标准差;具体选用哪一种标准化的方法在多数情况下 并没有很大的限制,这里我们采用的是前人的论文中用的比较多的一种标准化方法。 几种数据标准化的方法 指标标准化的方法
5. 例题:评价水质情况
评价下表中 20 条河流的水质情况 注:含氧量越高越好;PH值越接近7越好;细菌总数越少越好;植物性营养物量介于10‐20之间最佳,超 过20或低于10均不好。
第二步:在工作区新建一个空白的数据文件(.mat),命名为data_water.
第四步:右击数据文件,另存为.mat文件,下次使用时可以直接用load导入数据。
代码:
然后可以将数据表的文件名改成X(短一些,好写代码)
第二步:如果需要正向化处理,输入1.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!