【数学建模笔记】评价模型-基于熵权法的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 实例说明

多个指标可以进行降维



相关推荐
巴伦是只猫7 分钟前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
X_StarX6 小时前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
MingYue_SSS6 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
巴伦是只猫6 小时前
【机器学习笔记 Ⅱ】1 神经网络
笔记·神经网络·机器学习
weixin_437398216 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
teeeeeeemo8 小时前
回调函数 vs Promise vs async/await区别
开发语言·前端·javascript·笔记
致***锌11 小时前
期权标准化合约是什么?
笔记
Virgil13911 小时前
数学建模练习题——多元统计分析
数学建模
通信射频老兵12 小时前
卫星通信基础知识---自由空间衰减和天线增益计算
经验分享·5g·数学建模·信号处理·射频工程
Wilber的技术分享12 小时前
【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
人工智能·笔记·算法·随机森林·机器学习·集成学习·xgboost