学习打卡7.18

时间:2024-05-19 17:19:02

TOPSIS法

模型介绍

处理原始数据

首先,对于我们得到的数据先进行统一指标类型
其中最常用的就是将所有的指标转化为极大型称为指标正向化
学习打卡7.18
然后对数据进行标准化处理
进行标准化处理的理由是因为量纲不同
所以需要标准化处理

标准化处理的计算公式
学习打卡7.18

计算得分

当只有一个指标的时候
学习打卡7.18
然后我们可以通过类比,得到
学习打卡7.18

TOPSIS法的步骤

1.将原始矩阵正向化

我们常见的有4种
学习打卡7.18

极小型

学习打卡7.18

中间型

中间型指标:指标值既不要太大也不要太小,取某特定值最好(如水质量评估PH 值)
学习打卡7.18

区间型

区间型指标:指标值落在某个区间内最好,例如人的体温在36°~37°这个区间比较好。
学习打卡7.18

2.正向化矩阵标准化

学习打卡7.18

3.计算得分并归一化学习打卡7.18

学习打卡7.18

代码

第一步:把数据复制到工作区

我们的数据一般存在Excel表格中
我们直接导入即可
load data_water_quality.mat

注意:代码和数据要放在同一个目录下,且Matlab的当前文件夹也要是这个目录

第二步:判断是否需要正向化

学习打卡7.18
其中的Positivization函数
学习打卡7.18
其中的Mid2Max函数
M = max(abs(x-best));
posit_x = 1 - abs(x-best) / M;

其中的Mid2Min函数
posit_x = max(x) - x;

其中的Inter2Max函数
学习打卡7.18

第三步:对正向化后的矩阵进行标准化

学习打卡7.18

第四步:计算与最大值的距离和最小值的距离,并算出得分

学习打卡7.18

基于熵权法对Topsis模型的修正

对于添加的权重,我们可以采用层次分析法
判断矩阵的确定依赖于专家,如果专家的判断存在主观性的话, 会对结果产生很大的影响。

熵权法

学习打卡7.18
极端条件:
对于所有的样本而言,这个指标都是相同的数值,
那么我们可认为这个指标的权值为0,即这个指标对于我们的评价起不到任何帮助

信息熵

定义

学习打卡7.18

熵越大信息量越大还是越小?

学习打卡7.18
因为我们关注的是已有的信息,所以答案是越小。

计算步骤

(1)判断输入的矩阵中是否存在负数,如果有则要重新标准化到非负区间
学习打卡7.18
(2)计算第j项指标下第i个样本所占的比重,并将其看作相对熵计算中用到的概率
学习打卡7.18
(3)计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权
学习打卡7.18