尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
层次分析法、熵值法、博弈论确定指标权重
我们在进行综合评价的时候需要确定每个指标的权重权重设置的差异会导致出现完全不同的评价结果然而权重的确定是一个令人头疼的事情。权重的确定方法主要可以分成三大类主观赋权以及客观赋权以及主客观相结合的方式。这里我们不讨论各种方式的优缺点以及各种方法的理论直接使用代码实现三大类方法各一种层次分析法AHP## 层次分析法权重计算 def AHP(A): AA #step:计算特征值和对应的特征向量 A_lambda,A_vectornp.linalg.eig(A) #step2:获取对他的特征值 A_maxlambdamax(A_lambda).real.round(4) #step3:获取对打特征值的索引号 A_indexnp.argmax(A_lambda) #step4:获取最大特征值对应的特征向量 A_maxvectorA_vector[:,A_index].real.round(4) # step5: 特征值法求权重 A_weightA_maxvector/A_maxvector.sum() # 进行一致性检验 RI_list [0, 0, 0.58 , 0.90, 1.12, 1.24, 1.32, 1.41, 1.45] A_CI(A_maxlambda-A.shape[0])/(A.shape[0]-1) A_RIRI_list[A.shape[0]-1] A_CRA_CI/RI_list[A.shape[0]-1] if A_CR0.1 : print(CR值为,A_CR, 小于0.1 通过一致性检验) return A_weight,A_maxlambda else: print(CR值为,A_CR, 未通过一致性检验)熵值法import math from numpy import array # 定义熵值法确定权重 def cla_entry_weight(data): xdata #求k rowsx.index.size # 行 colsx.columns.size # 列 k1.0/math.log(rows) lnf [[None] * cols for i in range(rows)] #矩阵计算 #信息熵 x array(x) lnf [[None] * cols for i in range(rows)] lnf array(lnf) for i in range(0, rows): for j in range(0, cols): if x[i][j] 0: lnfij 0.0 else: p x[i][j] / x.sum(axis0)[j] lnfij math.log(p) * p * (-k) lnf[i][j] lnfij lnf pd.DataFrame(lnf) E lnf # 计算冗余度 d 1 - E.sum(axis0) # 计算各指标的权重 w [[None] * 1 for i in range(cols)] for j in range(0, cols): wj d[j] / sum(d) w[j] wj # 计算各样本的综合得分,用最原始的数据 wpd.DataFrame(w) return w博弈论import pandas as pd import numpy as np #层次分析法获取权重 w1np.array([[0.1675,0.06,0.025,0.345,0.105,0.105,0.195]]) #熵值法获取权重 w2np.array([0.344,0,0.074,0.184,0.096,0,0.302]) def game_throry(w1,w2): w1:方法1计算的权重 w2:方法2计算的权重 d1:博弈论中w1的占比 d2:博弈论中w2的占比 w计算结果 w1w1 w2w2 w1_Tw1.T w2_Tw2.T AAw1.dot(w1_T).reshape(1) BBw1.dot(w2_T).reshape(1) CCw2.dot(w1_T).reshape(1) DDw2.dot(w2_T).reshape(1) mmnp.array([[AA,BB],[CC,DD]]).reshape(2,2) Ynp.concatenate((AA,DD)).reshape(2,1) renp.linalg.solve(mm,Y) d1re[0]/(re.sum()) d2re[1]/(re.sum()) ww1*d1w2*d2 return d1,d2,w
RELATED

相关推荐

DeepSeek Harness vs Claude Code:可编程协作者与增强型助手的本质差异

DeepSeek Harness vs Claude Code:可编程协作者与增强型助手的本质差异

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/15 22:56:32
蓝桥杯Python本地刷题环境搭建与调试指南

蓝桥杯Python本地刷题环境搭建与调试指南

简介:本资源是专为蓝桥杯Python组参赛者打造的历年真题与基础训练题库,面向高校计算机及相关专业学生,助力算法思维培养与竞赛实战能力提升。压缩包共44个文件,含43个可直接运行的Python解题源码(覆盖入门、基础、提高…

📅 2026/9/15 22:56:32
OpenClaw、Cursor与Claude Code测试能力对比选型指南

OpenClaw、Cursor与Claude Code测试能力对比选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/15 22:56:32
MORE NEWS

更多资讯

📰

pwndbg valist 命令详解:从内存结构透视 va_list 变参函数实参

pwndbg valist 命令详解:从内存结构透视 va_list 变参函数实参 【免费下载链接】pwndbg Exploit Development and Reverse Engineering with GDB & LLDB Made Easy 项目地址: https://gitcode.com/GitHub_Trending/pw/pwndbg 导读 在 Linux x86-64&…

📰

Kedro 架构全景解析:项目、框架、库与扩展如何协同支撑生产级数据管线

Kedro 架构全景解析:项目、框架、库与扩展如何协同支撑生产级数据管线 【免费下载链接】kedro Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipeli…

📰

Bootstrap按钮组件实战:从样式分层到状态切换与问题排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

远程控制软件后台耗电深度解析:ToDesk与向日葵续航实测对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

第一次Python作业避坑指南:从环境搭建到报错排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

基于Simulink的小电流接地系统单相接地故障仿真与保护分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬