【数学建模笔记】评价模型-基于熵权法的TOPSIS模型
视频课地址:https://www.bilibili.com/video/BV1eRyVYUEhg
本系列文章和课程一样,只使用Python实现,好久没玩数学建模了
国赛中不能再用TOPSIS,可以做辅助算法。
1. 算法原理
熵权TOPSIS方法是一种结合熵权法和TOPSIS的决策分析模型。
- 首先使用熵权法确定各指标的权重;
- 然后采用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∑mxij2xij
需要统一量纲,进行标准化处理,要不然算法不容易收敛。
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 实例说明
多个指标可以进行降维