首页 > 技术文章 > 基于熵权法对Topsis模型的修正

karryK 2020-05-01 14:27 原文

熵权法

层次分析法是一种评价模型,当没有给出数据时,我们对不同的准则进行分析,最后求得每一种方案的评分,但是有很大的缺点,比如主观性太强、方案层不能过多。而Topsis优劣解距离法可以对已有数据进行分析,经过正向化、标准化、求距离、归一化后即可得到评分。

但是Topsis有一个问题,就是默认每个指标的权重相同,所以也可以用层次分析法求出权重进行修正,由于层次分析法有很大不足,所以这里用熵权法对Topsis进行修正。

一、基本概念

(1)信息量

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

所以可以根据事件发生的概率来衡量信息量的大小。

如果把信息量用字母I表示,概率用p表示,两者是一个反比例关系,假设x表示事件X可能发生的某种情况,,我们定义I(x)=-ln(p(x))

其中0≤p(x)≤1之间,I(x)≥0。

(2)信息熵

信息熵是对信息量的期望,假设用H(x)来表示,则有
H ( x ) = ∑ i = 1 n [ p ( x i ) I ( x i ) ] = − ∑ i = 1 n [ p ( x i ) l n ( 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(xi)= 1 n \frac{1}{n} n1时,H(x)取最大值,此时H(x)=lnn(这里也可以看出,信息熵最大时,每个样本的这个指标值都相同,信息量最少)

由于信息熵是对未来信息量的期望,所以信息熵越大,它的内容给你补充的信息量越大,你当前已知的信息量越少。

二、计算步骤

(1)保证标准化矩阵每个元素非负

判断标准化后的矩阵是否存在负数(实际上,topsis中正向化后的矩阵只有极大型指标才可能出现负数),则重新进行标准化(因为后面计算信息量时要保证概率都为非负数)。
Z i j = x i j − m i n { x 1 j , x 2 j , ⋅ ⋅ ⋅ , x n j } m a x { x 1 j , x 2 j , ⋅ ⋅ ⋅ , x n j } − m i n { x 1 j , x 2 j , ⋅ ⋅ ⋅ , x n j } Z_{ij}=\frac{x_{ij}-min\lbrace x_{1j},x_{2j},···,x_{nj}\rbrace}{max\lbrace x_{1j},x_{2j},···,x_{nj}\rbrace-min\lbrace x_{1j},x_{2j},···,x_{nj}\rbrace} Zij=max{x1j,x2j,,xnj}min{x1j,x2j,,xnj}xijmin{x1j,x2j,,xnj}

(2)求概率

得到非负矩阵后,计算概率矩阵P,计算公式:
P i j = Z i j ∑ i = 1 n Z i j P_{ij}=\frac{Z_{ij}}{\sum_{i=1}^nZ_{ij}} Pij=i=1nZijZij

(3)求熵权

先求出每个指标的信息熵
e j = − 1 l n n ∑ i = 1 n P i j l n ( P i j ) e_{j}=-\frac{1}{ln n}\sum_{i=1}^nP_{ij}ln(P_{ij}) ej=lnn1i=1nPijln(Pij)
由于信息熵越大,信息量越小,所占的权重也越小,由此得出信息效用值得定义:
d j = 1 − e j d_{j}=1-e_{j} dj=1ej
那么信息效用值越大,信息量就越大。

将信息效用值归一化,即可得到每个指标得熵权:
W j = d j ∑ j = 1 n d j W_{j}=\frac{d_{j}}{\sum_{j=1}^nd_{j}} Wj=j=1ndjdj
然后在求优劣解的距离时,乘上对应指标的权重即可。

三、关于熵权法的讨论

熵权法,数据样本就决定了每个指标的权重,可理解为方差越大,信息量就越大,这个指标所占的权重越大,但是有一定的缺陷。例如这个例子:

​ X 、Y两个指标,用来评定三好学生,X 表示违纪上档案的次数,Y 表示逃课的次数,显然在生活中, X 对评定的影响程度很大,(违纪了基本与三好学生无缘了\滑稽)但是用熵权法的话,几乎所有人的X都是0,那么 X 的方差就很小,权重就很小,这显然是不合理的。

所以论文中最好不要用,但是在比赛中还是比较常用的。

推荐阅读