评价决策类-层次分析法

师从江北

问题引出

归一化处理:指标的数组[a b c]归一化处理得到[a/(a+b+c),b/(a+b+c),c/(a+b+c)]

因为每个指标的重要性不同,所以要加上一个权重

如何科学的确定权重,就要用到层次分析法(AHP)

模型原理

建立递阶层次结构模型

构造出各层次中的所有判断矩阵

构造判断矩阵

因两两比较的过程中忽略了其他因素,导致最后的结果可能出现矛盾

所以需要一致性检验

一致性检验

一致性检验的证明过程

一致性检验的步骤

回到最初问题

求权重

算术平均法求权重

几何平均法求权重

特征值法求权重

求评分

过程总结

构造判断矩阵->进行一致性检验->求权重 

Python代码实现

Numpy是Python中用于科学计算和数值操作的基础库,提供了很多高性能的多维数组对象

Pandas是用来提供高性能易于使用的数据结构和数据分析工具所用的库

Matplotib是创建可视化的库,即用来绘图的

一致性检验

定义矩阵A,np.array是numpy库中的一个函数,用于创建数组,它将输入的对象(如列表,元组,其他数组等)转化为Numpy数组
"""
A=np.array([[1,2,3,5],[1/2,1,1/2,2],[1/3,2,1,2],[1/5,1/2,1/2,1]])"""
求最大特征值(Max_eig)以及对应的特征向量(eig_vec)
np.linalg.eig是Numpy库中的一个函数,用于计算方阵的特征值和特征向量
"""
eig_val,eig_vec=np.linalg.eig(A)
Max_eig=max(eig_val)"""
获取A的行为0,获取列为1,shape是获取形状信息
"""
n=A.shape[0]"""
注:这里的RI最多支持n=15
这里n=2时一定是一致矩阵,所以CI=0,我们为了避免分母为0,将这里的第二个元素改为很接近0的正数
"""
CI=(Max_eig-n)/(n-1)
RI=[0,0.0001,0.52,0.89,1.12,1.26,1.36,1.41,1.46,1.49,1.52,1.54,1.56,1.58,1.59]CR=CI/RI[n-1]print('一致性指标CI=',CI)
print('一致性比例CR=',CR)if CR<0.10:print('因为CR<0.10,所以该判断矩阵A的一致性可以接受!')
else:print('因为CR>0.10,所以该判断矩阵A的一致性不可以接受!')

算术平均法求权重

import numpy as npA=np.array([[1,2,3,5],[1/2,1,1/2,2],[1/3,2,1,2],[1/5,1/2,1/2,1]])"""
计算每列的和
np.sum函数可以计算一维数组中所有元素的总和
还可以通过指定axis参数来计算多维数组的某个维度上的元素总和,例如,在二维数组中,axis=0表示按列计算总和,axis=1表示行计算总和
"""
Asum=np.sum(A,axis=0)#获取A的行
n=A.shape[0]"""
归一化,二维数组除以一维数组,会自动将一维数组扩展为与二维数组相同的形状,然后进行逐元素的除法运算
"""
Stand_A=A/Asum"""
各列相加到同一行
"""
Asumr=np.sum(Stand_A,axis=1)"""
计算权重向量
"""
weights=Asumr/nprint(weights)

几何平均法求权重

import numpy as npA=np.array([[1,2,3,5],[1/2,1,1/2,2],[1/3,2,1,2],[1/5,1/2,1/2,1]])#获取A的行
n=A.shape[0]"""
将A中每一行元素相乘得到一列向量
np.prod函数可以计算一维数组中所有元素的乘积
还可以通过指定axis参数来计算多维数组的某个维度上的元素总和,例如,在二维数组中,axis=0表示按列计算总和,axis=1表示行计
"""
prod_A=np.prod(A,axis=1)"""
将新的向量的每个向量开n次方等价求1/n次方
np.power是Numpy库中的一个函数,用于对数组中元素进行 幂运算
,可以使用np.power(a,b)对数组a中的每一个元素都按照b指数进行运算
"""
prod_n_A=np.power(prod_A,1/n)#归一化处理
re_prod_A=prod_n_A/np.sum(prod_n_A)#展示权重结果
print(re_prod_A)

特征值法求权重

import numpy as npA=np.array([[1,2,3,5],[1/2,1,1/2,2],[1/3,2,1,2],[1/5,1/2,1/2,1]])#获取A的行
n=A.shape[0]#求出特征值和特征向量
eig_values,eig_vectors=np.linalg.eig(A)#找出最大特征值的索引,np.argmax是Numpy库中的一个函数,用于返回数组中最大值的索引
max_index=np.argmax(eig_values)#找出相应的特征向量
max_vector=eig_vectors[:,max_index]#找到对应的特征向量
weights=max_vector/np.sum(max_vector)#输出权重
print(weights)

若有侵权,请联系作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/704561.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024最新软件测试【测试理论+ 接口测试】面试题(内附答案)

一、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段&#xff1a;需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的 SE 会把需求文档给我们自己先去了解一到两天这样&#xff0c;之后我们会有一个需求澄清会议&#xff0c; …

深度盘点在当今经济形势下资深项目经理或PMO的或去或从

在当今经济形势下&#xff0c;资深项目经理&#xff08;Project Manager&#xff09;或项目管理办公室&#xff08;PMO&#xff09;的去向和选择受到多种因素的影响。以下是对他们可能面临的或去或从的深度盘点&#xff1a; 1、发展去向 1. 深化专业领域&#xff1a;在经济形势…

AI绘画提示词案例(车

目录 1. 提示词1——复古敞篷车&#xff1a;2. 提示词2——霓虹城市&#xff1a;3. 提示词3——沙滩SUV&#xff1a;4. 网站推荐——LibLib小结&#xff1a; 1. 提示词1——复古敞篷车&#xff1a; 正向提示词&#xff1a; In the quiet suburbs,a vintage-style convertible…

js之选项卡制作实例

大家好&#xff0c;今天给大家书写选项卡实例&#xff0c;话不多说&#xff0c;直接上干货 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, in…

【嵌入式开发】Arduino人机界面及接口技术:独立按键接口,矩阵按键接口,模拟量按键接口(基础知识介绍)

“生活总是让我们遍体鳞伤,但到后来,那些受伤的地方一定会变成我们最强壮的地方。” 🎯作者主页: 追光者♂🔥 🌸个人简介: 📝[1] CSDN 博客专家📝 🏆[2] 人工智能领域优质创作者🏆 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🌿[4] …

OpenHarmony 实战开发——ArkUI容器类API介绍

容器类&#xff0c;顾名思义就是存储的类&#xff0c;用于存储各种数据类型的元素&#xff0c;并具备一系列处理数据元素的方法。在 ArkUI 开发框架中&#xff0c;容器类采用了类似静态的语言来实现&#xff0c;并通过 NAPI 框架对外提供。通过对存储位置以及属性的限制&#x…

Go微服务: 日志系统ELK核心架构设计

微服务日志系统建设 1 &#xff09;为什么需要日志系统 业务发展越来越庞大&#xff0c;服务器越来越多各种访问日志&#xff0c;应用日志&#xff0c;错误日志量越来越多&#xff0c;无法管理开发人员排查问题&#xff0c;需要到服务器上查日志 2 &#xff09;Elastic Stack…

栈和队列经典面试题详解

目录 题目一&#xff1a;20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09; 题目二&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 题目三&#xff1a;232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 题目四&#xff1a;622. 设…

AI大模型探索之路-训练篇23:ChatGLM3微调实战-基于P-Tuning V2技术的实践指南

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…

treejs 3D+echart实现三维旋转炫酷导航网页

treejs 3Dechart实现三维旋转炫酷导航网页https://www.bilibili.com/video/BV1SM4m1C7ki/

学前端网络安全这块还不懂?细说CSRF

什么是CSRF&#xff1f; 举个栗子&#xff0c;比如我们需要在某个博客上删除一个文章&#xff0c;攻击者首先在自己的域构造一个页面&#xff0c;使用了一个img标签&#xff0c;其地址指向了删除博客的链接。攻击者诱使目标用户&#xff0c;也就是博客主访问这个页面&#xff…

最小质数对-第12届蓝桥杯国赛Python真题解析

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第63讲。 最小质数对&#…