一.概念
熵是系统无序程度的一个度量,通过熵值判断某个指标的离散程度,越大,即权重就越大,如果某项指标的值全部相等,即该指标在综合评价中不起作用
熵权法是一种客观的赋权方法,依靠数据本身得出权重
原理:指标的变异程度越小,反映的信息量也越少,其对应的权值也越低
二、计算步骤
(一)数据标准化
- 正向化:将极小型、中间型、区间型指标转换为极大型指标,如极小型指标通过
x' = max(x) - x转换(不同类型指标转换公式有别 )。 - 归一化:消除量纲影响,常用 pij=xij/sum(xij)p_ij = x_ij / sum(x_ij)pij=xij/sum(xij)(xijx_ijxij 为正向化后数据 ),使
p_ij满足0 ≤ p_ij ≤ 1且sum(p_ij) = 1。
(二)计算指标熵值
公式为 ej=−k∗sum(pij∗ln(pij))e_j = -k * sum(p_ij * ln(p_ij))ej=−k∗sum(pij∗ln(pij)) ,其中 k = 1 / ln(n)(n 为样本数量 ),e_j 越小,指标区分能力越强。
(三)计算指标差异系数
gj=1−ejg_j = 1 - e_jgj=1−ej,差异系数越大,指标对综合评价贡献越大。
(四)确定指标权重
wj=gj/sum(gj)w_j = g_j / sum(g_j)wj=gj/sum(gj) ,权重反映指标重要程度,用于综合评价计算。
三、Python 实现
import numpy as np
import math
data = np.array([[10, 20, 30],
[12, 22, 28],
[8, 18, 32]])
#正向化(假设均为极大型指标,无需转换,若有其他类型需对应处理)
positive_data = data
#归一化
p = positive_data / positive_data.sum(axis=0)
#计算熵值
n, m = data.shape
k = 1 / math.log(n)
e = -k * np.sum(p * np.log(p + 1e-10), axis=0) # 加小量避免 log(0) 错误
#计算差异系数与权重
g = 1 - e
w = g / g.sum()
print("指标权重:", w)
四、应用
适用于多指标综合评价,如绩效评估、方案选优、竞争力分析等,需要客观权重体现指标重要性的场景。
440

被折叠的 条评论
为什么被折叠?



