news 2026/5/9 5:34:48

综合评价模型:层次-熵权-变异系数-博弈组合法 Python 实现指南 V1.0

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
综合评价模型:层次-熵权-变异系数-博弈组合法 Python 实现指南 V1.0

综合评价模型:层次-熵权-变异系数-博弈组合法
Python 实现指南 V1.0
核心理念:该模型旨在解决单一赋权法(如仅用AHP或仅用熵权法)的局限性。通过引入博弈论,将主观权重(层次分析法/AHP)与客观权重(熵权法/变异系数法)进行“谈判”,最终得出最优的综合权重。

🧩 模型架构解析
本模型融合了定性与定量分析,主要分为四个核心模块:

  1. 主观赋权 (Subjective)
    层次分析法 (AHP)基于专家经验判断指标的重要性,构建判断矩阵并归一化,得到主观权重
    W
    s
    u
    b
    W
    sub


    特点: 考虑了人的认知与偏好。

缺点: 容易受专家主观臆断影响。

  1. 客观赋权 (Objective)
    熵权-变异系数法基于数据本身的离散程度(信息量)来确定权重,得到客观权重
    W
    o
    b
    j
    W
    obj


    特点: 数据说话,剔除无效指标。

缺点: 忽略了指标的实际意义。

  1. 博弈组合 (Game Theory)
    纳什均衡将主客观权重视为两个博弈方。通过迭代计算,寻找双方的平衡点,消除偏差,得到最优组合权重
    W
    o
    p
    t
    W
    opt

  2. 综合评价 (Synthesis)
    加权求和利用
    W
    o
    p
    t
    W
    opt

    对标准化后的指标得分进行加权,得出最终的综合评价值。

💻 Python 代码实现
以下代码展示了如何利用 numpy 和 pandas 实现上述逻辑。为了简化演示,我们假设已经完成了 AHP 判断矩阵的构建。

import numpy as npimport pandas as pd
def calculate_ahp_weight(matrix): “”" 计算层次分析法(AHP)权重 :param matrix: 判断矩阵 (n x n) :return: 权重向量 “”" # 1. 计算几何平均列 geo_mean = np.prod(matrix, axis=0) ** (1/len(matrix))

2. 归一化得到权重 weights = geo_mean / sum(geo_mean) return weights

def calculate_entropy_weight(data): “”" 计算熵权法权重 :param data: 标准化后的数据矩阵 (m x n) :return: 客观权重向量 “”" # 1. 数据平移 (非负化) data = data - data.min()

2. 计算比重 p = data / data.sum(axis=0)

3. 计算熵值 e = -np.sum(p * np.log(p + 1e-9), axis=0) / np.log(len(data))

4. 计算差异系数 g = 1 - e

5. 归一化得到权重 weights = g / sum(g) return weights

def game_theory_combination(w_sub, w_obj, iterations=100): “”" 博弈组合赋权 (模拟纳什均衡) :param w_sub: 主观权重 :param w_obj: 客观权重 :return: 最终组合权重 “”" # 初始化权重 w_final = w_sub
for _ in range(iterations): # 简单的迭代逼近算法 # 这里采用一种简化的共识模型:最终权重是主客观权重的加权平均 # 在实际博弈中,通常需要更复杂的约束条件求解 alpha = 0.5 # 假设双方初始权重相等 w_new = alpha * w_sub + (1 - alpha) * w_obj

如果变化极小,则停止 if np.allclose(w_final, w_new): break

w_final = w_new
return w_final

— 模拟数据 —# 假设有 3 个评价对象,4 个指标np.random.seed(42)data = np.random.rand(3, 4) * 100 # 随机生成数据df = pd.DataFrame(data, columns=[‘指标A’, ‘指标B’, ‘指标C’, ‘指标D’])

1. 主观赋权 (AHP)# 构造一个简单的判断矩阵 (示例)ahp_matrix = np.array([ [1, 3, 5, 2], [1/3, 1, 2, 1], [1/5, 1/2, 1, 1/3], [1/2, 1, 3, 1]])w_sub = calculate_ahp_weight(ahp_matrix)

2. 客观赋权 (熵权法)# 先对数据进行标准化 (Min-Max)data_std = (data - data.min()) / (data.max() - data.min())w_obj = calculate_entropy_weight(data_std)

print(f"主观权重 (AHP): {w_sub}“)print(f"客观权重 (Entropy): {w_obj}”)

3. 博弈组合w_comb = game_theory_combination(w_sub, w_obj)

print(“\n— 最终组合权重 —”)print(f"组合权重: {w_comb}")

4. 综合得分# 假设我们使用组合权重对原始数据(已标准化)进行加权求和final_scores = np.dot(data_std, w_comb)print(“\n— 最终评价结果 —”)print(final_scores)

查看代码运行结果示例

⚖️ 方法优劣分析
Pros
全面性:结合了专家经验(主观)与数据实证(客观)。
科学性:通过博弈论消除了主客观权重之间的冲突,结果更具说服力。
灵活性:可根据需求调整博弈过程中的参数(如迭代次数或初始权重比例)。
Cons
计算复杂:相比单一方法,博弈组合的数学推导较为繁琐。
依赖输入:AHP 阶段仍需依赖专家打分,若专家水平参差不齐,会影响结果。

🚀 下一步建议
0/3 Completed
数据预处理: 确保数据无量纲化(标准化),特别是正向/负向指标的处理。
AHP矩阵校验: 必须进行一致性检验(CR < 0.1),否则需重新修正判断矩阵。
算法优化: 上述代码中的 game_theory_combination 仅为简化版,实际工程中可引入拉格朗日乘数法求解纳什均衡。
了解 AHP 一致性检验查看 TOPSIS 结合方案下载完整 Jupyter Notebook

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

如何优雅处理JavaScript中的循环引用问题:flatted库深度解析

如何优雅处理JavaScript中的循环引用问题&#xff1a;flatted库深度解析 【免费下载链接】flatted A fast and minimal circular JSON parser. 项目地址: https://gitcode.com/gh_mirrors/fl/flatted 引言&#xff1a;当JSON.stringify遇到循环引用 在日常JavaScript开…

作者头像 李华
网站建设 2026/5/8 19:29:44

Stability AI视频生成技术完整指南:从环境搭建到多视角创作

Stability AI视频生成技术完整指南&#xff1a;从环境搭建到多视角创作 【免费下载链接】generative-models 是由Stability AI研发的生成模型技术 项目地址: https://gitcode.com/GitHub_Trending/ge/generative-models Stability AI的生成模型技术代表了当前AI视频生成…

作者头像 李华
网站建设 2026/5/9 0:39:58

腾讯混元3D Studio:重塑三维内容创作的技术革新

腾讯混元3D Studio&#xff1a;重塑三维内容创作的技术革新 【免费下载链接】Hunyuan3D-2 Hunyuan3D 2.0&#xff1a;高分辨率三维生成系统&#xff0c;支持精准形状建模与生动纹理合成&#xff0c;简化资产再创作流程。 项目地址: https://ai.gitcode.com/tencent_hunyuan/H…

作者头像 李华
网站建设 2026/5/9 0:35:13

终极Automa模板市场:新手也能快速掌握的浏览器自动化神器

终极Automa模板市场&#xff1a;新手也能快速掌握的浏览器自动化神器 【免费下载链接】automa A browser extension for automating your browser by connecting blocks 项目地址: https://gitcode.com/gh_mirrors/au/automa 轻松实现网页操作自动化&#xff0c;告别重复…

作者头像 李华
网站建设 2026/5/9 0:35:20

2025年C++视频学习终极指南:5个必看教程助你快速进阶

2025年C视频学习终极指南&#xff1a;5个必看教程助你快速进阶 【免费下载链接】awesome-cpp awesome-cpp - 一个精选的 C 框架、库、资源和有趣事物的列表。 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-cpp 想要在2025年系统学习C编程语言&#xff1f;…

作者头像 李华