# 多属性决策启示录 第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 求和归一化让每列的和 1Step 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_jd_j 越大说明该指标的信息量越大越应该被赋予高权重。Step 4归一化为权重w_j d_j / Σd_j1.3 直观理解三款手机在电池容量上的值为5000mAh, 4800mAh, 5100mAh。这三个值非常接近——说明这个指标几乎没有区分度。熵权法的结果该指标的熵值接近 1d_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 完整实现pythonimport numpy as npimport pandas as pdclass ObjectiveWeights:熵权法 CRITIC 客观赋权staticmethoddef 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/mcontinueif 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-10p norm / norm.sum(axis0)# Step 3: 计算熵值k 1.0 / np.log(m)e -k * np.sum(p * np.log(p), axis0)# Step 4: 信息冗余度 → 权重d 1 - ew d / d.sum()return wstaticmethoddef 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.5continueif 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, axis0, ddof0)# Step 3: 相关系数矩阵 → 冲突性corr np.corrcoef(norm.T)conflict np.sum(1 - np.abs(corr), axis1)# Step 4: 信息量 C_j σ_j × conflict_jC sigma * conflictw C / C.sum()return wpython# ── 对比实验买车数据 ──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, indexcols, columnscols).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 的标准差会受异常值影响方案数量较少(m5)CRITIC熵权法在小样本下不稳定论文需要做敏感性分析两者都用对比主观(AHP)客观两种赋权结果五、2025-2026 前沿MEREC 与博弈论赋权截至 2026 年客观赋权领域有两个值得关注的新方向MERECMEthod based on the REemoval Effects of Criteria, 2021Keshavarz-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 论文方法论才能说完整。数据不会说谎——但它只会告诉你一件事实你测量到了什么。权重是你给数据的音量旋钮。