Matlab实现——结合AHP or 熵权法的TOPSIS评判模型

文章目录

  • 前言
  • 一、思维导图
  • 二、TOPSIS
    • 2.1 关于TOPSIS
    • 2.2 正向化处理
    • 2.3 进行标椎化处理
    • 2.4 对各个目标(决策、方案等)进行评分
  • 三、熵权法
    • 3.1 定义
    • 3.2 计算步骤
  • 总结


前言

在前面的《利用Matlab实现AHP评判模型》一文中,我们有讨论到AHP的一些缺点,例如主观性过强、判断矩阵的填写需要专家填写难以实现以及缺乏数据支撑等。所以在这里我不然而然地就联想到了结合熵权法的TOPSIS算法。接下来本人将陈述我对该算法的理解及看法,并且利用Matlab实现该算法


提示:本文学习数据由“清风老师”提供。

一、思维导图

老样子,我们沿着思维导图学习这一算法。在这里先留个大概印象,我们再一个个往里填叭。
Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第1张图片

二、TOPSIS

2.1 关于TOPSIS

L.Hwang 和 K.Yoon 于1981年首次提出 TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution)。TOPSIS 法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。基本过程为基于归一化后的原始数据矩阵,采用余弦法找出有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。

笔者刚学习这一模型,看这简介的时候就想:“这不比AHP要香?”有原始数据支撑,并且对于样本n种没有严格的限制,如果是AHP,n的取值就得小于15了,大于15,一次性检验就无法正常的进行了。

废话不多说,上数据叭。
eg:评价下表中20条河流的水质情况(其中,含氧量越高越好,河流PH值越接近7越好,细菌总数越少越好,植物性营养物质介于10~20之间最佳)
Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第2张图片

2.2 正向化处理

判断各组数据的类型,进而对各组数据进行正向化处理,即是将各组数据的判断指标统一为极大型判断指标,以至于我们可以从一方面评判这些数据,一般都是转化为极大型指标。类型有级小型、中间型以及区间型等,相应的处理过程如下:

  1. 级小型数据转化为极大型数据
    相应处理公式:
    在这里插入图片描述
    如数据中的细菌总数便是属于级小型数据,max=54,处理得:
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第3张图片
  2. 中间型数据转化为极大型数据
    相应处理公式:
    在这里插入图片描述
    如数据中的PH值,越靠近中间值7越好,即属于中间型指标。对河流PH值这一列数据处理得:
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第4张图片
  3. 区间型数据转化为极大型数据
    相应处理公式:
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第5张图片
    其中M:在这里插入图片描述
    如数据中的植物性营养物质量,位于区间[10,20]最佳,即属于中间型数据,同样是按着公式对这一列数据进行正向化处理。

综上,即可得正向化矩阵D
Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第6张图片

2.3 进行标椎化处理

然后我们在对正向化矩阵进行标椎化处理,进而得到标椎化矩阵Z
处理公式如下:
Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第7张图片
(注意:标椎化的公式是不唯一的,还有其它的标椎化过程。)
即可得到标准矩阵如下:
Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第8张图片

2.4 对各个目标(决策、方案等)进行评分

  1. 这一环节包括D+、D-、Wi、Si的计算。
    D+即为第i个目标对最大值(第i条河流对最好的“河流标准)的距离,D-为第i个目标对最小值的距离。
    即计算公式如下:
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第9张图片
    其中,
    在这里插入图片描述
    相反,Z+ 则为标椎化矩阵各列的最大值。Wi 则为各个评判指标的权重,通过AHP或者熵权法进行计算。
    通过上面的计算,我们即可得到未经过归一化处理的评分 Si
    在这里插入图片描述
  2. 对评分进行归一化处理
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第10张图片
    故,最终我们可以通过评分的大小来评估这20条河流水质的优劣情况。
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第11张图片

三、熵权法

对于权重 Wi 的求解,可以用层次分析法或者熵权法来求解,AHP的方法在《利用Matlab实现AHP评判模型》一文中有详细的讲解,故这里不再加以赘述。这里利用熵权法对河流水质各指标的权重进行评估。

3.1 定义

按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重)就越大,如果某项指标的值全部相等,则该指标在综合评价中不起作用。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。

3.2 计算步骤

  1. 检验标准矩阵的非负性
    即要求上面所得到的的标准矩阵的全部元素需要是非负数。如果存在小于0的书,这需要对正向化矩阵 D 利用下面公式重新进行标椎化。
    在这里插入图片描述
  2. 计算概率矩阵P
    Matlab实现——结合AHP or 熵权法的TOPSIS评判模型_第12张图片
    即第j项指标下第i个样本所长的比重。
  3. 计算信息熵ej
    即信息熵的计算公式如下:
    在这里插入图片描述
    通过上面的分析可以得知信息熵越大,信息所含的信息量越小。即该类信息所占权重也会越小。
  4. 计算权重Wj
    首先计算信息效用值:dj = 1- ej,即是未归一化的权重,对信息效用值进行归一化处理即可得到每个指标的权重。
    在这里插入图片描述

总结

熵权法求权重,相对于AHP求权重,熵权法是从数据本身出发,减少了操作者的主观性影响,但是却不一定合理,可以理解为方差大的指标权重就越大,但是相对于那些变化很小的数据,那方差如果几乎为0,那却不是快要忽略这些数据的影响了。所以说,一种模型合不合理是相对而论的,要具体看数据、使用环境而定。

你可能感兴趣的:(数学建模,算法,评价类模型,算法,matlab,数据建模)