1、第二讲:TOPSIS法2/34TOPSIS法法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法可翻译为逼近理想解排序法,国内常简称为优劣解距离法TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。其结果能精确地反映各评价方案之间的差距。模模 型型 介介 绍绍3/341层次分析法的一些局限性4/34(1)评价的决策层不能太多,太多的话)评价的决策层不能太多
2、,太多的话n会很大,判断矩阵和一致矩阵差会很大,判断矩阵和一致矩阵差异异 可能会很大。可能会很大。平均随机一致性指标RI的表格中n最多是15。(2)如果决策层中指标的数据是已知的,那么我们如何利用这些数据来使得)如果决策层中指标的数据是已知的,那么我们如何利用这些数据来使得 评价的更加准确呢?评价的更加准确呢?n123456789101112131415RI000.520.891.121.261.361.411.461.491.521.541.561.581.59学生学生加权成绩加权成绩工时数工时数课外竞赛得分课外竞赛得分蒋虹89.7325时迎春86.5204陶访枫87.9129梁冷安90.1
3、106姜秀芳82.6123一个小例子小明同宿舍共有四名同学,他们第一学期的高数成绩如下表所示:姓名姓名成绩成绩小明89小王60小张74清风99请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。5/34一个很简单的想法:6/34姓名姓名成绩成绩排名排名修正后的排名修正后的排名评分评分小明89233/10=0.3小王60411/10=0.1小张74322/10=0.2清风99144/10=0.4请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。(注:这
4、里要求的评分可以类比于上一讲层次分析法中要求的那个权重)(注:这里要求的评分可以类比于上一讲层次分析法中要求的那个权重)该想法的不合理之处7/34姓名姓名成绩成绩排名排名修正后的排名修正后的排名评分评分小明89233/10=0.3小王6010411/10=0.1小张74322/10=0.2清风 9990144/10=0.4请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。请你为这四名同学进行评分,该评分能合理的描述其高数成绩的高低。可以随便修改成绩,只要保证排名不变,那么评分就不会改变!一个比较好的想法:姓名姓名成绩成绩小明89小王60小张74清风99最高成绩 最低成绩:99:60
5、构造计算评分的公式:s n inn a s nin姓名姓名成绩成绩未归一化的评分未归一化的评分归一化评分归一化评分小明89(89 60)/(99 60)=0.740.74/2.1=0.35小王60(60 60)/(99 60)=00/2.1=0小张74(74 60)/(99 60)=0.360.36/2.1=0.17清风99(99 60)/(99 60)=11/2.1=0.488/34一个要说明的问题姓名姓名成绩成绩小明89小王60小张74清风99卷面最高成绩 卷面最低成绩:100:0s 0构造计算评分的公式:1000姓名姓名成绩成绩未归一化的评分未归一化的评分归一化评分归一化评分小明890.
6、890.28小王600.600.19小张740.740.23清风990.990.309/34三点解释1比较的对象一般要远大于两个。(例如比较一个班级的成绩)2比较的指标也往往不只是一个方面的,例如成绩、工时数、课 外竞赛得分等。3有很多指标不存在理论上的最大值和最小值,例如衡量经济增 长水平的指标:GDP增速。构造计算评分的公式:s n inn a s nin10/34拓展问题:增加指标个数11/34姓名姓名成绩成绩与他人争吵的次数与他人争吵的次数小明892小王600小张741清风993新增加了一个指标,现在要综合评价四位同学,并为他们进行评分。成绩是越高(大)越好越高(大)越好,这样的指标称
7、为极大型指标(效益型指标)极大型指标(效益型指标)。与他人争吵的次数越少(越小)越好越少(越小)越好,这样的指标称为极小型指标(成本型指标)极小型指标(成本型指标)。统一指标类型姓名姓名成绩成绩与他人争吵的次数与他人争吵的次数正向化后的争吵次数正向化后的争吵次数小明8921小王6003小张7412清风9930指标类型指标类型极大型极小型极大型将所有的指标转化为极大型称为将所有的指标转化为极大型称为指标正向化指标正向化(最常用)(最常用)极小型指标转换为极大型指标的公式:极小型指标转换为极大型指标的公式:12/34标准化处理13/34姓名姓名成绩成绩正向化后的争吵次数正向化后的争吵次数小明891
8、小王603小张742清风990指标类型指标类型极大型极大型为了消去不同指标量纲的影响消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处标准化处理理。标准化处理的计算公式代码:X=89,1;60,3;74,2;99,0n,m=size(X)X./repmat(sum(X.*X).0.5,n,1)14/34如何计算得分?姓名姓名成绩成绩正向化后的争吵次数正向化后的争吵次数小明0.54370.2673小王0.36650.8018小张0.45200.5345清风0.60480指标类型指标类型极大型极大型只有一个指标的时候:构造计算评分的公式:变形=s n in=sninn a s n i nn
9、 a s s +(snin)与最小值的距离最小值的距离可看作:与最大值的距离与最大值的距离 +与最小值的距与最小值的距离离15/34类比只有一个指标计算得分与最小值的距离最小值的距离与最大值的距离与最大值的距离 +与最小值的与最小值的距离距离16/34如何计算得分?最大值:0.6048,0.8018,最小值:0.3665,0姓名成绩正向化后的争吵次数小明0.54370.2673小王0.36650.8018小张0.45200.5345清风0.60480X=89,1;60,3;74,2;99,0n,m=size(X);17/34Z=X./repmat(sum(X.*X).0.5,n,1);D_P=
10、sum(Z-repmat(max(Z),n,1).2,2).0.5D_N=sum(Z-repmat(min(Z),n,1).2,2).0.5%D+向量%D-向量如何计算得分?最大值:0.6048,0.8018,最小值:0.3665,0姓名成绩正向化后的争吵次数小明0.54370.2673小王0.36650.8018小张0.45200.5345清风0.60480姓名姓名+未归一化的得分未归一化的得分归一化后的得分归一化后的得分排名排名小明0.53800.32060.37340.18573小王0.23820.80180.77090.38341小张0.30780.54130.63750.31702清
11、风0.80180.23820.22910.1139418/34TOPSIS的介绍19/34C.L.Hwang 和 K.Yoon 于1981年首次提出 TOPSIS(Technique for Order Preference by Similarity to an Ideal Solution),可翻译为逼近理 想解排序法,国内常简称为优劣解距离法优劣解距离法。TOPSIS 法是一种常用的综合评价方法,能充分利用原始数据的 信息,其结果能精确地反映各评价方案之间的差距。基本过程基本过程为先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指 标
12、量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分 别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对 象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法 对数据分布及样本含量没有严格限制,数据计算简单易行。第一步:将原始矩阵正向化20/34指标名称指标名称指标特点指标特点例子例子极大型(效益型)指标越大(多)越好成绩、GDP增速、企业利润极小型(成本型)指标越小(少)越好费用、坏品率、污染程度中间型指标越接近某个值越好水质量评估时的PH值区间型指标落在某个区间最好体温、水中植物性营养物量最常见的四种指标:所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化所谓的将原始
13、矩阵正向化,就是要将所有的指标类型统一转化为为 极大型指标。(转换的函数形式可以不唯一极大型指标。(转换的函数形式可以不唯一哦哦)极小型指标 极大型指标姓名姓名成绩成绩与他人争吵的次数与他人争吵的次数正向化后的争吵次数正向化后的争吵次数小明8921小王6003小张7412清风9930指标类型指标类型极大型极小型极大型极小型指标转换为极大型指标的公式:极小型指标转换为极大型指标的公式:如果所有的元素均为正数,那么也可以使用1s21/34中间型指标 极大型指标PH值(转换前)值(转换前)PH值(转换后)值(转换后)61 6 7=12271 7 7=1281 8 7=12291 9 7=02中间型指
14、标:中间型指标:指标值既不要太大也不要太小,取某特定值最好(如水质量评估 PH 值)22/34区间型指标 极大型指标区间型指标:区间型指标:指标值落在某个区间内最好,例如人的体温在3637这个区间比较好。体温(转换前)体温(转换前)体温(转换后)体温(转换后)35.20.428635.80.857136.6137.10.928637.80.428638.4023/34第二步:正向化矩阵标准化标准化的目的是消除不同指标量纲的影响。24/34注意:标准化的方法有很多种,其主要目的就是去除量纲的影响,未来我们还可能见到更多 种的标准化方法,例如:(xx的均值)/x的标准差;具体选用哪一种标准化的方法
15、在多数情况下 并没有很大的限制,这里我们采用的是前人的论文中用的比较多的一种标准化方法。第三步:计算得分并归一化与最小值的距离最小值的距离与最大值的距离与最大值的距离 +与最小值的距与最小值的距离离注意:要区别开归一化和标准化。归一化的计算步骤也可以 消去量纲的影响,但更多时候,我们进行归一化的目的是为 了让我们的结果更容易解释,或者说让我们对结果有一个更 加清晰直观的印象。例如将得分归一化后可限制在01这个区 间,对于区间内的每一个得分,我们很容易的得到其所处的 比例位置。25/34注意:这里还没有考 虑指标的权重,后面 的内容会考虑指标的 权重来进行计算。一起来做练习题吧题目:评价下表中题
16、目:评价下表中20条河流的水质情况。条河流的水质情况。注:含氧量越高越好;PH值越接近7越好;细菌总数越少越好;植物性营养物量介于1020之间最佳,超过20或低于10均不好。河流河流含氧量含氧量(ppm)PH值值细菌总数细菌总数(个个/mL)植物性营养物量(植物性营养物量(ppm)A4.696.595111.94B2.037.86196.46C9.116.31468.91D8.617.054626.43E7.136.55023.57F2.396.773824.62G7.696.79386.01H9.36.812731.57I5.457.62518.46J6.197.27177.51K7.937
17、.5396.52L4.47.281725.3M7.468.242314.42N2.015.554726.31O2.046.42317.91P7.736.145215.72Q6.357.582529.46R8.298.413912.02S3.547.27543.16T7.446.26828.41注:数据是我随手编的,仅用于讲解相应的算法,可能有不合理之处,请见谅。26/34代代 码码 详详 解解27/342本节代码部分知识点索引代码详解请见视频代码详解请见视频1.将EXCEL中的数据导入到Matlab,并另存为mat文件,下次可直接load Matlab中函数的编写和调用2.magic(n)幻方
18、矩阵3.sort函数4.zeros和ones函数另外,看完代码讲解的视频后,一定要看我更新的一个视频:28/34模模 型型 拓拓 展展29/343如何计算得分?最大值:0.6048,0.8018,最小值:0.3665,0姓名成绩正向化后的争吵次数小明0.54370.2673小王0.36650.8018小张0.45200.5345清风0.60480X=89,1;60,3;74,2;99,0n,m=size(X);Z=X./repmat(sum(X.*X).0.5,n,1);D_P=sum(Z-repmat(max(Z),n,1).2,2).0.5D_N=sum(Z-repmat(min(Z),n
19、,1).2,2).0.5%D+向量%D-向量指标的权重指标的权重 默认了相同默认了相同30/34类比只有一个指标计算得分与最小值的距离最小值的距离与最大值的距离与最大值的距离 +与最小值的与最小值的距离距离注意:我们也可以先对标准化矩阵中的每个元素计算权重,然后直接用 带权重的标准化矩阵来计算得分,这样得到的结果和下面在计算距离时 引入权重得到的结果是几乎相同的。别漏了这个权重!31/34带权重的TOPSIS当然:层次分析法的主观性太强了,更推荐大家使用熵权法来进行客观赋值。当然:层次分析法的主观性太强了,更推荐大家使用熵权法来进行客观赋值。相关内容可查看视频:番外篇番外篇1:基于熵权法对基于熵权法对Topsis模型的修正模型的修正(注意,番外篇里面涉及到的代码有后面的内容,建议基础不好的同学把后续视频看完后再去看番外篇)32/34课课 后后 练练 习习33/344课后训练34/34代码优化:代码优化:请你改编代码,使用户能选择是否加入指标的权重计算。提示:用if函数判断用户的输入论文写作训练:论文写作训练:将刚刚讲解的那个题目写成一篇小论文,要求结合层次分析法确定 权重,论文格式和上次作业一样,可以套用模板来写。