评价类问题:
1.层次分析法入门学习:
https://blog.csdn.net/weixin_47066458/article/details/113177117
2.Topsisi入门学习:
https://blog.csdn.net/weixin_47066458/article/details/113811761
一、预备知识
依据原理:
指标的变异程度越小,所反映的信息量也越少,其对应的权值也应该越低。(客观 = 数据本身就可以告诉我们权重)
一种极端的例子:对于所有的样本而言,这个指标都是相同的数值,那么我们可认为这个指标的权值为0,即这个指标对于我们的评价起不到任何帮助。
信息量:
越有可能发生的事情,信息量越少,
越不可能发生的事情,信息量就越多。
假设x表示事件X可能发生的某种情况,p表示这种情况发生的概率,我们可以定义:
信息量
I
(
x
)
=
−
ln
(
p
(
x
)
)
I(x)=-\ln (p(x))
I(x)=−ln(p(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}\left[p\left(x_{i}\right) I\left(x_{i}\right)\right]=-\sum_{i=1}^{n}\left[p\left(x_{i}\right) \ln \left(p\left(x_{i}\right)\right)\right]
H(X)=∑i=1n[p(xi)I(xi)]=−∑i=1n[p(xi)ln(p(xi))]
由公式可以看出,信息熵的本质是对信息量的期望值。
可以证明:
信息熵越大,它的内容带给我们的信息量越大,而对于熵权法,我们关注的是已有的信息,所以信息量越小。
二、熵权法
计算步骤:
- 1.判断输入的矩阵中是否存在负数,如果有则要重新标准化到非负区间(后面计算概率时需要保证每一个元素为非负数)
- 对其标准化矩阵记为Z,Z中每一个元素: z i j = x i j / ∑ i = 1 n x i j 2 z_{i j}=x_{i j} / \sqrt{\sum_{i=1}^{n} x_{i j}^{2}} zij=xij/∑i=1nxij2
- 如果上步中得到的Z中存在负数的话,则需对X使用另一种标准化方法:
z ~ i j = x i j − min { x 1 j , x 2 j , ⋯ , x n j } max { x 1 j , x 2 j , ⋯ , x n j } − min { x 1 j , x 2 j , ⋯ , x n j } \quad \tilde{z}_{i j}=\frac{x_{i j}-\min \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}}{\max \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}-\min \left\{x_{1 j}, x_{2 j}, \cdots, x_{n j}\right\}} z~ij=max{x1j,x2j,⋯,xnj}−min{x1j,x2j,⋯,xnj}xij−min{x1j,x2j,⋯,xnj}
- 2.计算第j项指标下第i个样本所占的比重,并将其看作相对熵计算中用到的概率。
- 3.计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权。
- 对于第j个指标,其信息熵计算公式:
- 定义信息效用:
d
j
d_j
dj=1-
e
j
e_j
ej
信息效用值越大,其对应的信息就越多
我们将信息效用值进行归一化,可以得到每个指标的熵权:
- 对于第j个指标,其信息熵计算公式:
注意事项:
- 熵权法的一个问题:因为概率p是位于0‐1之间,因此需要对原始数据进行标准化,我们应该选择哪种方式进行标准化呢?查看知网的文献会发现,并没有约定俗成的标准,每个人的选取可能都不一样。但是不同方式标准化得到的结果可能有很大差异,所以说熵权法也是存在着一定的问题的。
- 如果论文要发表,尽量不使用熵权法;
如果只是用这个方法进行比赛,那么可以随便用,因为这个方法总比自己随意定义的好。 - Matlab函数:
function [W] = Entropy_Method(Z)
% 计算有n个样本,m个指标的样本所对应的的熵权
% 输入
% Z : n * m 的矩阵(要经过正向化和标准化处理,且元素中不存在负数)
% 输出
% W:熵权,1*m的行向量