那么把 信息量 用字母
I
\bf I
I 表示,概率 用
p
\bf p
p 表示,那么我们可以将它们建立一个函数关系:
那么,假设 x 表示事件 X 可能发生的某种情况,p(x)表示这种情况发生的概率情况如上图所示,该图像可以用对数函数进行拟合,那么最终我们可以定义:
I
(
x
)
=
−
ln
(
p
(
x
)
)
I(x) = -\ln(p(x))
I(x)=−ln(p(x)),因为
0
≤
p
(
x
)
≤
1
0 ≤ p(x) ≤ 1
0≤p(x)≤1,所以
I
(
x
)
≥
0
I(x) ≥ 0
I(x)≥0。 接下来引入正题:
信息熵的定义
假设 x 表示事件 X 可能发生的某种情况,p(x) 表示这种情况发生的概率我们可以定义:
I
(
x
)
=
−
ln
(
p
(
x
)
)
I(x)=-\ln(p(x))
I(x)=−ln(p(x)) ,因为
0
≤
p
(
x
)
≤
1
0≤p(x)≤1
0≤p(x)≤1 ,所以
I
(
x
)
≥
0
I(x)≥0
I(x)≥0 。 如果事件 X 可能发生的情况分别为:
x
1
,
x
2
,
⋯
,
x
n
x_1,x_2,\cdots,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=1∑n[p(xi)I(xi)]=−i=1∑n[p(xi)ln(p(xi))]
那么从上面的公式可以看出,信息上的本质就是对信息量的期望值。
可以证明的是:
p
(
x
1
)
=
p
(
x
1
)
=
⋯
=
p
(
x
n
)
=
1
/
n
\ p(x_1)=p(x_1)=\cdots = p(x_n) = {1}/{n}
p(x1)=p(x1)=⋯=p(xn)=1/n 时,
H
(
x
)
H(x)
H(x) 取最大值,此时
H
(
x
)
=
ln
(
n
)
H(x)=\ln(n)
H(x)=ln(n)。 (n表示事件发生情况的总数)
X
=
[
x
11
x
12
⋯
x
1
m
x
21
x
22
⋯
x
2
m
⋮
⋮
⋱
⋮
x
n
1
x
n
2
⋯
x
n
m
]
X= \begin{bmatrix} x_{11} & x_{12} & \cdots &x_{1m} \\ x_{21}& x_{22} & \cdots &x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1}& x_{n2} & \cdots &x_{nm} \end{bmatrix}
X=x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯x1mx2m⋮xnm
设标准化矩阵为
Z
Z
Z,
Z
Z
Z 中元素记为
z
i
j
z_{ij}
zij:
z
i
j
=
x
i
j
∑
i
=
1
n
x
i
j
2
z_{ij}=\frac{x_{ij}}{\sqrt{\displaystyle\sum_{i=1}^{n}{x_{ij}^2}}}
zij=i=1∑nxij2xij
判断
Z
Z
Z 矩阵中是否存在着负数,如果存在的话,需要对
X
X
X 使用另一种标准化方法对矩阵
X
X
X 进行一次标准化得到
Z
Z
Z 矩阵,其标准化的公式为:
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},\cdots, x_{nj}\rbrace}{max\lbrace x_{1j}, x_{2j},\cdots, x_{nj} \rbrace - min\lbrace x_{1j}, x_{2j},\cdots, x_{nj} \rbrace}
zij=max{x1j,x2j,⋯,xnj}−min{x1j,x2j,⋯,xnj}xij−min{x1j,x2j,⋯,xnj}
这样可以保证
z
i
j
z_{ij}
zij 在 [0,1] 区间,没有负数。
2. 计算第 j 项指标下第 i 个样本所占的比重,并将其看作相对熵计算中用到的概率。
假设有
n
n
n 个要评价的对象,
m
m
m 个评价指标,且经过了上一步处理得到的非负矩阵为:
Z
=
[
z
11
z
12
⋯
z
1
m
z
21
z
22
⋯
z
2
m
⋮
⋮
⋱
⋮
z
n
1
z
n
2
⋯
z
n
m
]
Z= \begin{bmatrix} z_{11} & z_{12} & \cdots &z_{1m} \\ z_{21}& z_{22} & \cdots &z_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1}& z_{n2} & \cdots &z_{nm} \end{bmatrix}
Z=z11z21⋮zn1z12z22⋮zn2⋯⋯⋱⋯z1mz2m⋮znm
计算概率矩阵
P
P
P,其中
P
P
P 中每一个元素
p
i
j
p_{ij}
pij,的计算公式如下:
p
i
j
=
z
i
j
∑
i
=
1
n
z
i
j
p_{ij}=\frac{z_{ij}}{\displaystyle\sum_{i=1}^{n}{z_{ij}}}
pij=i=1∑nzijzij
保证每一列的加和为1,即每个指标所对应的概率和为1。
3. 计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权。
信息熵的计算: 对于第
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}^{n}{p_{ij}}\ln(p_{ij}), \quad(j=1,2,\cdots,m)
ej=−lnn1i=1∑npijln(pij),(j=1,2,⋯,m)
注意:这里如果说
p
i
j
p_{ij}
pij 为0,那么就需要指定
l
n
(
0
)
=
0
ln(0) = 0
ln(0)=0 。
这里要说明两个问题: 1. 为什么这里要除以
ln
(
n
)
\ln(n)
ln(n) 这个常数? 在前面说过
p
(
x
1
)
=
p
(
x
2
)
=
.
.
.
=
p
(
x
n
)
=
1
/
n
p(x_1)=p(x_2)=...=p(x_n)=1/n
p(x1)=p(x2)=...=p(xn)=1/n 时,
H
(
x
)
H(x)
H(x) 取最大值为
ln
(
n
)
\ln(n)
ln(n),这里除以
ln
(
n
)
\ln(n)
ln(n) 能够使得信息嫡的始终位于 [0,1] 区间上面。
2. ej 越大,即第 j 个指标的信息嫡越大,表明第 j 个指标的信息越多还是越少? 答案是越少。当
p
1
j
=
p
2
j
=
⋯
=
p
n
j
p_{1j} = p_{2j} =\cdots=p_{nj}
p1j=p2j=⋯=pnj 时,
e
j
e_j
ej 取到最大值 1 。但是因为
p
i
j
=
z
i
j
/
∑
i
=
1
n
z
i
j
p_{ij} = z_{ij}/\displaystyle\sum_{i=1}^{n}z_{ij}
pij=zij/i=1∑nzij ,所以
z
1
j
=
z
2
j
=
⋯
=
z
n
j
z_{1j} = z_{2j} =\cdots= z_{nj}
z1j=z2j=⋯=znj,即 所有样本的这个指标值都相同。 指标相同意味着这个指标的数据没有变化,也就是 信息少! 因此需要将其倒转,即计算信息效用值。