【数学建模笔记】评价模型-基于熵权法的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 小时前
【求中位数】2024-1-23
c语言·c++·经验分享·笔记·算法
张人玉7 小时前
百度 AI 图像识别 WinForms 应用代码分析笔记
人工智能·笔记·百度
xqqxqxxq8 小时前
背单词软件技术笔记(V1.0核心版及V2.0随机挖字母)
笔记
YJlio8 小时前
Active Directory 工具学习笔记(10.8):AdInsight——保存与导出(证据留存、共享与二次分析)
数据库·笔记·学习
xqqxqxxq9 小时前
背单词软件技术笔记(V2.0扩展版)
java·笔记·python
yuxb7310 小时前
Kubernetes核心组件详解与实践:controller
笔记·kubernetes
受之以蒙11 小时前
Rust 与 dora-rs:吃透核心概念,手把手打造跨语言的机器人实时数据流应用
人工智能·笔记·rust
2401_8345170712 小时前
AD学习笔记-36 gerber文件输出
笔记·学习
hhhhhhh_hhhhhh_12 小时前
TC3x7-DEMO-V1.0原理图自学笔记
笔记
气π12 小时前
【JavaWeb】——(若依 + AI)-基础学习笔记
java·spring boot·笔记·学习·java-ee·mybatis·ruoyi