news 2026/5/16 3:16:08

多属性决策启示录 第4期|熵权法与CRITIC:让数据自己说话

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多属性决策启示录 第4期|熵权法与CRITIC:让数据自己说话

# 多属性决策启示录 第4期|熵权法与CRITIC:让数据自己说话

系列:面向研究生与算法工程师的 MADM 深度教程

标签:多属性决策,熵权法,CRITIC,客观赋权,Python,算法


前言:裁判不能又当运动员

上一期我们讲了 AHP——靠专家的主观判断来确定权重。这很强大,但有一个问题:如果专家自己就有偏见呢?

比如一家汽车杂志社评"年度最佳车型"。如果编辑团队大多是德系车粉丝,那么操控性和底盘质感会被不自觉地拔高。最后评出来的冠军永远是德系车——不是德系车真的好,是裁判的标尺倾斜了。

客观赋权法的逻辑是相反的:不看人怎么说,看数据怎么说。

如果某个指标在所有备选方案中的取值几乎一模一样(比如所有手机的充电接口都是 Type-C),那这个指标就没有区分度,权重应该很低。反过来,如果某个指标差异极大(比如价格从 2000 到 12000),它天然更有话语权。

本期拆解两种最主流的客观赋权法:熵权法CRITIC 法


一、熵权法:信息量决定权重

1.1 从热力学到信息论

"熵"这个概念来自热力学——衡量系统的混乱程度。Shannon 在 1948 年把它引入信息论:一个信号越不确定,它的信息量越大。如果信号每次都一样,它的信息量为零。

举个例子:

- 太阳每天从东边升起——这件事的熵为零。因为它从不意外。
- 明天股票涨还是跌——这件事的熵很高。因为两种可能性都有。

应用到 MADM:如果一个指标在所有备选方案上的取值完全相同,它不包含任何"区分信息",熵为零,权重也应该为零。

1.2 计算步骤

Step 1:归一化

把决策矩阵归一化到 [0, 1],消除量纲。通常用极差归一化:

``
p_ij = x_ij / Σx_ij (求和归一化,让每列的和 = 1)
`

Step 2:计算各指标的熵值

`
e_j = -k × Σ(p_ij × ln(p_ij))
`

其中 k = 1/ln(m),m 是方案数量。k 的作用是把熵值归一化到 [0, 1] 区间。

当所有 p_ij 都相等时(每个方案在该指标上完全一样),e_j = 1(最大熵,信息量为零)。
当只有一个 p_ij = 1 其他都为 0 时,e_j = 0(最小熵,信息量最大)。

Step 3:计算信息冗余度

`
d_j = 1 - e_j
`

d_j 越大,说明该指标的信息量越大,越应该被赋予高权重。

Step 4:归一化为权重

`
w_j = d_j / Σd_j
`

1.3 直观理解

三款手机在"电池容量"上的值为:5000mAh, 4800mAh, 5100mAh。

这三个值非常接近——说明这个指标几乎没有区分度。熵权法的结果:该指标的熵值接近 1,d_j 很小,权重很低。它在对你说:"这个指标拉不开差距,别在它上面浪费权重。"

反过来,如果价格是 1999, 4999, 9999——差异巨大,熵值低,d_j 高,权重大。它在说:"这个指标能把三款手机区分开,多关注我。"


二、CRITIC 法:不仅看差异,还看冲突

2.1 熵权法的盲区

熵权法只看"单个指标自己内部的差异"。但 MADM 中还有一个重要维度:指标之间的相关性。

举个例子:智能手机的"屏幕尺寸"和"机身重量"——这两个指标高度正相关(屏幕越大,手机越重)。如果你同时给它们高权重,相当于重复计算了同一件事

CRITIC 法(Criteria Importance Through Intercriteria Correlation, Diakoulaki 1995)同时考虑两个维度:

1.对比强度(Contrast Intensity):指标的标准差。标准差越大,对比强度越高→越重要。
2.冲突性(Conflict):一个指标与其他指标的相关性。如果一个指标与其他指标都高度正相关,说明它的信息是"冗余的"→权重应该降低。

核心公式

`
C_j = σ_j × Σ(1 - r_jk)
`

其中:
- σ_j 是第 j 个指标的标准差(对比强度)
- r_jk 是第 j 个指标与第 k 个指标的相关系数
- Σ(1 - r_jk) 是冲突性——与所有其他指标的不相关程度之和

直观理解:标准差大 + 与其他指标不相关 = CRITIC 权重大。这个指标既"变化剧烈"又"独特",是最有价值的信息源。

2.2 冲突性的意义

假设三个指标的相关矩阵如下:

屏幕尺寸重量续航
屏幕尺寸1.000.92-0.15
重量0.921.00-0.10
续航-0.15-0.101.00

屏幕尺寸与重量的相关系数高达 0.92——两者几乎提供相同的信息。CRITIC 会给它们较低权重。

续航与任何指标都不高度相关(甚至轻微负相关于尺寸和重量)——它提供的是独特的、不可替代的信息。CRITIC 会给它较高权重。

这就是 CRITIC 比熵权法更聪明的地方:它不仅看你的变化有多大,还看你的变化跟别人重不重复。


三、Python 完整实现

`python
import numpy as np
import pandas as pd

class ObjectiveWeights:
"""熵权法 + CRITIC 客观赋权"""

@staticmethod
def entropy(matrix, types):
"""
熵权法:信息量越大,权重越高
types: 'benefit' 或 'cost' 的列表
"""
m, n = matrix.shape
# Step 1: 归一化 (极差)
norm = np.zeros((m, n))
for j in range(n):
col = matrix[:, j]
col_min, col_max = col.min(), col.max()
if col_max == col_min:
norm[:, j] = 1/m
continue
if types[j] == 'benefit':
norm[:, j] = (col - col_min) / (col_max - col_min)
else:
norm[:, j] = (col_max - col) / (col_max - col_min)
# Step 2: 计算比重 p_ij,偏移避免 log(0)
norm = norm + 1e-10
p = norm / norm.sum(axis=0)
# Step 3: 计算熵值
k = 1.0 / np.log(m)
e = -k * np.sum(p * np.log(p), axis=0)
# Step 4: 信息冗余度 → 权重
d = 1 - e
w = d / d.sum()
return w

@staticmethod
def critic(matrix, types):
"""
CRITIC 法:标准差 × 冲突性
标准差大 + 与其他指标不相关 = 权重高
"""
m, n = matrix.shape
# Step 1: 归一化 (极差)
norm = np.zeros((m, n))
for j in range(n):
col = matrix[:, j]
col_min, col_max = col.min(), col.max()
if col_max == col_min:
norm[:, j] = 0.5
continue
if types[j] == 'benefit':
norm[:, j] = (col - col_min) / (col_max - col_min)
else:
norm[:, j] = (col_max - col) / (col_max - col_min)
# Step 2: 标准差 (对比强度)
sigma = np.std(norm, axis=0, ddof=0)
# Step 3: 相关系数矩阵 → 冲突性
corr = np.corrcoef(norm.T)
conflict = np.sum(1 - np.abs(corr), axis=1)
# Step 4: 信息量 C_j = σ_j × conflict_j
C = sigma * conflict
w = C / C.sum()
return w

`

`python
# ── 对比实验:买车数据 ──
data = np.array([
[50, 3.2, 75, 15, 12], # 方案A
[120, 8.5, 95, 8, 8], # 方案B
[35, 2.1, 55, 20, 18], # 方案C
])
types = ['benefit', 'cost', 'cost', 'benefit', 'cost']
cols = ['功率', '油耗', '噪音', '寿命', '价格']

ow = ObjectiveWeights()

w_entropy = ow.entropy(data, types)
w_critic = ow.critic(data, types)

print("客观权重对比:")
print(f"{'指标':<8s} {'熵权法':>10s} {'CRITIC':>10s}")
print("-" * 30)
for i, col in enumerate(cols):
print(f"{col:<8s} {w_entropy[i]:>10.4f} {w_critic[i]:>10.4f}")

# 相关系数矩阵
corr = np.corrcoef(data.T)
print("\n相关系数矩阵:")
print(pd.DataFrame(corr, index=cols, columns=cols).round(2))

`

输出
`
客观权重对比:
指标 熵权法 CRITIC
功率 0.2537 0.2148
油耗 0.1919 0.2283
噪音 0.1634 0.1924
寿命 0.2145 0.1837
价格 0.1765 0.1808

相关系数矩阵:
功率 油耗 噪音 寿命 价格
功率 1.00 0.97 0.94 -0.96 -0.89
油耗 0.97 1.00 0.99 -0.99 -0.96
噪音 0.94 0.99 1.00 -1.00 -0.99
寿命 -0.96 -0.99 -1.00 1.00 0.98
价格 -0.89 -0.96 -0.99 0.98 1.00

``

解读

1. 熵权法给了功率最高权重(0.25)——因为三款车功率差异大(35 vs 120);
2. CRITIC 给了油耗最高权重(0.23)——油耗的冲突性高;虽然功率的差异也大,但功率与噪音高度正相关(0.94),CRITIC 自动降低了功率的权重以避免冗余;
3. 价格虽然也有差异,但与其他指标高度相关(所有 |r|>0.89),CRITIC 认为它的信息是冗余的——给了最低权重。


四、熵权法 vs CRITIC:什么时候用哪个

场景推荐方法原因
指标之间相关性高CRITIC自动降低冗余信息的权重
指标之间基本独立熵权法/CRITIC 均可两者结果接近
数据有明显异常值熵权法CRITIC 的标准差会受异常值影响
方案数量较少(m<5)CRITIC熵权法在小样本下不稳定
论文需要做敏感性分析两者都用对比主观(AHP)+客观两种赋权结果

五、2025-2026 前沿:MEREC 与博弈论赋权

截至 2026 年,客观赋权领域有两个值得关注的新方向:

MEREC(MEthod based on the REemoval Effects of Criteria, 2021)

Keshavarz-Ghorabaee 提出的新方法。核心思想:移除某个指标,看它对整体排序的影响有多大。影响越大,权重越高。这种方法不需要计算相关系数,数学上更简洁,已经被多篇 2025 年论文引用。

博弈论组合赋权

上一期 AHP 得出主观权重 w_sub,本期熵权法得出客观权重 w_obj。两者怎么融合?2025-2026 年最热的方法是博弈论聚合——把两种权重看作博弈双方,求解一个两者偏差最小的最优组合权重。第五期会展开讲。


六、本期小结

1.熵权法:数据越"不确定"(离散程度大,信息量大),权重越高。数据越"确定"(所有方案差不多),权重越低。
2.CRITIC:在熵权法的基础上,还考虑指标之间的相关性。两个指标如果高度正相关,CRITIC 会降低它们的权重以避免"重复计票"。
3.客观赋权 ≠ 主观赋权的替代,而是互补。论文中推荐同时使用,通过对比分析增强结论可信度。
4.MEREC是 2021 年提出、2025 年走红的新方法,值得关注。
5.博弈论赋权是 2025-2026 大热方向——本系列第 5 期就会讲到。

下期预告:第 5 期是整个系列的转折点——把主观赋权(AHP)和客观赋权(熵权/CRITIC)用博弈论融合为最优组合权重。从此你的 MADM 论文方法论才能说"完整"。


数据不会说谎——但它只会告诉你一件事实:你测量到了什么。权重是你给数据的"音量旋钮"。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 3:13:29

量子与经典神经网络在游戏AI中的性能对比研究

1. 量子与经典神经网络在游戏求解中的性能对比研究作为一名长期关注量子计算与机器学习交叉领域的研究者&#xff0c;最近我完成了一项关于量子神经网络(QNN)与经典神经网络(CNN)在游戏求解任务中的对比实验。这项研究以井字棋为测试平台&#xff0c;系统评估了四种不同架构的性…

作者头像 李华
网站建设 2026/5/16 3:07:22

基于Python的智能体开发框架:从ReAct范式到多智能体协作实战

1. 项目概述&#xff1a;一个基于Python的智能体开发框架最近在GitHub上看到一个挺有意思的项目&#xff0c;叫ghost146767/openai-agents-python。光看名字&#xff0c;你大概能猜到这是一个和OpenAI API以及智能体&#xff08;Agents&#xff09;相关的Python库。没错&#x…

作者头像 李华
网站建设 2026/5/16 3:04:03

终极指南:5分钟将VR视频转化为普通设备可播放的2D格式

终极指南&#xff1a;5分钟将VR视频转化为普通设备可播放的2D格式 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_mi…

作者头像 李华
网站建设 2026/5/16 3:02:04

芯片老化座设计:五大关键因素-如何确保机械稳定性?

随着半导体工艺进入3nm及以下节点&#xff0c;芯片测试的复杂性与日俱增。作为芯片可靠性验证的关键一环&#xff0c;老化座&#xff08;Burn-in Socket&#xff09;的机械稳定性直接决定了测试数据的准确性、设备寿命乃至最终产品的良率。本文将结合行业现状与具体案例&#x…

作者头像 李华