【数学建模笔记】评价模型-基于熵权法的TOPSIS模型

视频课地址:https://www.bilibili.com/video/BV1eRyVYUEhg

本系列文章和课程一样,只使用Python实现,好久没玩数学建模了

国赛中不能再用TOPSIS,可以做辅助算法。

1. 算法原理

熵权TOPSIS方法是一种结合熵权法和TOPSIS的决策分析模型。

  1. 首先使用熵权法确定各指标的权重;
  2. 然后采用TOPSIS方法对备选防范进行评价和排序。

(可以把TOPSIS换成别的评价方法,或者赋权重方法换成不是熵权法的方法,比如随机森林,也可以在TOPSIS之前聚个类)

1.1 熵权法(Entropy Weight Method)

熵权法基于信息熵理论,用于计算决策指标的权重。信息是可以反映指标值分布的均匀性,信息熵越大,指标值的分布越均匀,其所含信息越少,相应的权重也越小。

1.1.1 标准化处理

设有 m m m个评价对象, n n n个评价指标。原始数据矩阵为 X = [ x i j ] \boldsymbol{X}=[x_{ij}] X=[xij],其中 x i j x_{ij} xij表示第 i i i个评价对象在第 j j j个指标上的表现,标准化后的数据矩阵 R = [ r i j ] \boldsymbol{R}=[r_{ij}] R=[rij]可通过以下公式得到:
r i j = x i j ∑ i = 1 m x i j 2 r_{i j}=\frac{x_{i j}}{\sqrt{\sum\limits_{i=1}^{m} x_{i j}^{2}}} rij=i=1∑mxij2 xij

需要统一量纲,进行标准化处理,要不然算法不容易收敛。

1.1.2 计算熵值 e j e_j ej

  • p i j = r i j ∑ i = 1 m r i j p_{i j}=\frac{r_{i j}}{\sum\limits_{i=1}^{m} r_{i j}} pij=i=1∑mrijrij
  • e j = − k ∑ i = 1 m p i j log ⁡ ( p i j ) e_{j}=-k \sum\limits_{i=1}^{m} p_{i j} \log \left(p_{i j}\right) ej=−ki=1∑mpijlog(pij),其中 k = 1 log ⁡ m k=\frac{1}{\log m} k=logm1,如果 p i j = 0 p_{ij}=0 pij=0,则 p i j log ⁡ ( p i j ) = 0 p_{ij}\log(p_{ij})=0 pijlog(pij)=0.

1.1.3 计算权重 w j w_j wj

  • d j = 1 − e j d_j=1-e_j dj=1−ej
  • 求出权重 w j = d j ∑ j = 1 n d j w_{j}=\frac{d_{j}}{\sum\limits_{j=1}^{n} d_{j}} wj=j=1∑ndjdj

1.2 TOPSIS方法

TOPSIS是一种基于距离的方法,用于评估和选择最佳方案。方法是通过计算每个方案与理想最优解(正理想解)和最差解(负理想解)的距离来进行排序。

1.2.1 计算加权标准化决策矩阵

计算加权标准化决策矩阵 V = [ v i j ] \boldsymbol{V}=[v_{ij}] V=[vij]: v i j = w j ⋅ r i j v_{i j}=w_{j} \cdot r_{i j} vij=wj⋅rij.

1.2.2 确定正理想解 A + \boldsymbol{A}^{+} A+和负理想解 A − \boldsymbol{A}^{-} A−

正理想解是解中更好的部分,负理想解是解中更差的部分。
A + = ( max ⁡ i ≤ m v i j ,对于利益型指标; min ⁡ i ≤ m v i j ,对于成本型指标 ) A − = ( min ⁡ i ≤ m v i j ,对于利益型指标; max ⁡ i ≤ m v i j ,对于成本型指标 ) A^{+}=\left(\max {i \leq m} v{i j}\right. ,对于利益型指标; \min {i \leq m} v{i j} ,对于成本型指标 ) \\ A^{-}=\left(\min {i \leq m} v{i j}\right. ,对于利益型指标; \max {i \leq m} v{i j} ,对于成本型指标 ) A+=(i≤mmaxvij,对于利益型指标;i≤mminvij,对于成本型指标)A−=(i≤mminvij,对于利益型指标;i≤mmaxvij,对于成本型指标)

算法的终极目的是越靠近好的越远离差的。利益型指标是越大越好,成本型指标是越小越好。不一定非要利益型或者成本型,有时候要选择没有波动性值......可以在这儿改进。

1.2.3 计算方案与正负理想解的距离

  • S i + = ∑ j = 1 n ( v i j − A j + ) 2 S_{i}^{+}=\sqrt{\sum\limits_{j=1}^{n}\left(v_{i j}-A_{j}^{+}\right)^{2}} Si+=j=1∑n(vij−Aj+)2 ;
  • S i − = ∑ j = 1 n ( v i j − A j − ) 2 S_{i}^{-}=\sqrt{\sum\limits_{j=1}^{n}\left(v_{i j}-A_{j}^{-}\right)^{2}} Si−=j=1∑n(vij−Aj−)2 .

算的是和最高分有多接近,与最低分有多接近,这也就是正负理想解的距离。

1.2.4 计算相似度 C i C_i Ci

C i = S i − S i + + S i − C_{i}=\frac{S_{i}^{-}}{S_{i}^{+}+S_{i}^{-}} Ci=Si++Si−Si−

方案按 C i C_i Ci值降序排序, C i C_i Ci值越大,方案越优。

1.3 实例说明

多个指标可以进行降维



相关推荐
vv啊vv4 分钟前
ROS笔记
笔记
java亮小白199738 分钟前
【高项】信息系统项目管理师(三)项目立项管理
经验分享·笔记·学习方法
HinsCoder1 小时前
IDEA使用Git同步教程
java·笔记·git·学习·github·intellij-idea·版本控制
红色的山茶花2 小时前
YOLOv10-1.1部分代码阅读笔记-instance.py
笔记·深度学习·yolo
赶紧写完去睡觉2 小时前
数学建模入门——描述性统计分析
数学建模·数据可视化·统计学
19岁开始学习3 小时前
Elasticsearch复习笔记
笔记·elasticsearch·jenkins
鲁子狄3 小时前
[笔记] Jenkins 安装与配置全攻略:Ubuntu 从零开始搭建持续集成环境
java·linux·运维·笔记·ubuntu·ci/cd·jenkins
Jackilina_Stone4 小时前
【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第四章 图像处理原理与应用(3 AND 4 )
图像处理·人工智能·笔记·学习·huawei
yz_弘毅道远4 小时前
笔记1月5
笔记·gem5·计算机体系架构
豆浆两块钱4 小时前
【Java】JVM内存相关笔记
java·jvm·笔记