数学建模-基于熵权法的TOPSIS法修正

这里是根据清风数学建模视频课程整理的笔记,我不是清风本人。想系统学习数学建模的可以移步B站搜索相关视频


TOPSIS方法此前以及写过博文,因此这里主要讲熵权法确定权重

熵权法原理

指标的变异程度越小(即方差越小),所反映的信息量也越少,其对应的权值也应该越低。

例如:对于所有的样本而言,这个指标都是相同的数值, 那么我们可认为这个指标的权值为0,即这个指标对于我们的评价起不 到任何帮助

如何度量信息量的大小

在这里插入图片描述

越有可能发生的事情,信息量越少;越不可能发生的事情,信息量就越多。

⇓(如何衡量事情发生的可能性?)

概率
在这里插入图片描述

信息熵的定义

假设 x x x表示事件 X X X可能发生的某种情况 p ( x ) p(x) p(x)表示这种情况发生的概率

我们定义: I ( x ) = − ln ⁡ ( p ( x ) ) I(x)=-\ln(p(x)) I(x)=ln(p(x))

如果事件 X X X可能发生的情况分别为: x 1 , x 2 , … , x n x_1,x_2,…,x_n x1,x2,,xn

那么定义事件 X X X的信息熵为: H ( X ) = ∑ i = 1 n [ p ( x i ) I ( x i ) ] = − ∑ i = 1 n [ p ( x i ) ln ⁡ ( p ( x i ) ) ] H(X)=\sum_{i=1}^n[p(x_i)I(x_i)]=-\sum_{i=1}^n[p(x_i)\ln(p(x_i))] H(X)=i=1n[p(xi)I(xi)]=i=1n[p(xi)ln(p(xi))]

信息熵的本质就是对信息量的期望值

可以证明,当 p ( x 1 ) = p ( x 2 ) = … = p ( x n ) = 1 n p(x_1)=p(x_2)=…=p(x_n)=\frac 1n p(x1)=p(x2)==p(xn)=n1时, H ( x ) H(x) H(x)取最大值 ln ⁡ n \ln n lnn

熵权法计算步骤

第一步,判断输入矩阵中是否存在负数,如果有负数则要重新标准化到非负区间

在这里插入图片描述

第二步,计算第 j j j项指标下第 i i i​个样本所占的比重,并将其看作相对熵计算中用到的概率
在这里插入图片描述

第三步,计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权

对于第 j j j个指标而言,其信息熵的计算公式为

e j = − 1 ln ⁡ n ∑ i = 1 n p i j ln ⁡ ( p i j ) , ( j = 1 , 2 , … , m ) e_j=-\frac {1}{\ln n}\sum_{i=1}^np_{ij}\ln(p_ij),(j=1,2,…,m) ej=lnn1i=1npijln(pij),(j=1,2,,m)

1、为什么要除以 ln ⁡ n \ln n lnn​?

因为当 p ( x 1 ) = p ( x 2 ) = … = p ( x n ) = 1 n p(x_1)=p(x_2)=…=p(x_n)=\frac 1n p(x1)=p(x2)==p(xn)=n1时, H ( x ) H(x) H(x)取最大值 ln ⁡ n \ln n lnn,那么这里除以 ln ⁡ n \ln n lnn能够让信息熵始终位于 [ 0 , 1 ] [0,1] [0,1]​区间上

2、 e j e_j ej越大,即第 j j j个指标的信息熵越大,表明第 j j j个指标的信息越多还是越少?

越少。

p 1 j = p 2 j = … = p n j p_{1j}=p_{2j}=…=p_{nj} p1j=p2j==pnj时, e j = 1 e_j=1 ej=1,信息熵最大,但由于 p i j = z ~ i j ∑ i = 1 n z ~ i j p_{ij}=\Large \frac {\widetilde{z}_{ij}}{\sum_{i=1}^n\widetilde{z}_{ij}} pij=i=1nz ijz ij,所以 z ~ 1 j = z ~ 2 j = … = z ~ n j \widetilde{z}_{1j}=\widetilde{z}_{2j}=…=\widetilde{z}_{nj} z 1j=z 2j==z nj​,说明所有样本的这个指标值都相同​

由于信息熵越大,所包含的信息量越小,因此我们定义信息效用值 d j = 1 − e j d_j=1-e_j dj=1ej,则信息效用值越大,所包含的信息量越大

最后将信息效用值进行归一化,则得到每个指标的熵权

W j = d j ∑ j = 1 m d j , ( j = 1 , 2 , … , m ) W_j=\large \frac {d_j}{\sum_{j=1}^md_j},(j=1,2,…,m) Wj=j=1mdjdj,(j=1,2,,m)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值