层次分析法是数学建模的入门算法,类似于算法竞赛中的cout<<"Hello,world!"<<endl;
对于python数据分析的初学者来说,在使用python实现层次分析法时,难点是特征值法的相关函数。

首先是计算矩阵的特征值和特征向量,当然你也可以手算

w=np.linalg.eig(a)  #np.linalg.eig(matri)返回特征值和特征向量

然后是寻找最大特征值所在的行和列

t=np.argwhere(w[0]==a_max) #寻找最大特征值所在的行和列

argwhere()中的参数是一个表达式
特征值法代码如下:

import numpy as np#计算特征向量和最大特征值
a=np.array([[1,1/2,1/5],[2,1,1/2],[5,2,1]])   #建立一个二维数组
w=np.linalg.eig(a)  #np.linalg.eig(matri)返回特征值和特征向量
a_max=np.max(w[0])
t=np.argwhere(w[0]==a_max) #寻找最大特征值所在的行和列
RILIST=[0,0,0,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]
n=a.shape[0]
RI=RILIST[n]
CI=(a_max-n)/(n-1)
CR=CI/RI
print(CR)
print("矩阵一致性可接受") if CR<0.1 else print("矩阵一致性不可接受")
ans=w[1][::-1,t[0]]
SUM=sum(ans)
for i in range(ans.shape[0]):ans[i]/=SUM

为了结果的稳健性,我们也常常使用算术平均值法和几何平均值法求权重

'''
算术平均值法
'''
import numpy as npa=np.array([[1,1/2,1/4],[2,1,1/2],[4,2,1]])
b=np.sum(a,axis=1)
for i in range(a.shape[0]):for j in range(a.shape[1]):a[j][i]/=b [j]
print(np.average(a,axis=0))
'''
几何平均值法
'''
import numpy as np
a=np.array([[1,1/2,1/4],[2,1,1/2],[4,2,1]])
b=np.power(np.prod(a,axis=0),1/a.shape[0]) #累乘
b=b/np.sum(b)
print(b)

`

用python实现层次分析法(AHP)相关推荐

  1. Python实现“层次分析法”及“自调节层次分析法”

    Python实现"层次分析法"及"自调节层次分析法" 假设我们遇到如下问题: ①对于M个方案,每个方案有N个属性,在已知各个方案每个属性值&&任 ...

  2. 熵权法EW与层次分析法AHP之数学原理及实例

    1.概述 对于多指标或多目标决策问题,由于涉及到多个指标或属性,在对实测数据进行评价时,需要确定这些指标之间的相互权重,各指标权重的客观性与合理性也会大大影响到最终的评价结果.目前对于指标权重确定的方 ...

  3. 【数学建模】层次分析法(AHP)-Python实现

    1 前言 本文主要讲解层次分析法(AHP)的python实现,后续会跟进实例分析 2 代码实现 导入包 import numpy as np 2.1 构造判断矩阵 判断矩阵一般采用专家意见法,也就是德 ...

  4. 层次分析法AHP - 代码注释多 - ( 数据建模 Python代码)

    实际生活中,往往有一些很复杂的系统,我们没办法直观草率的确定权重,比如甲.乙.丙三人竞选总统,严谨的说,需要从三人的社交能力.管理能力.经济能力等方面来考虑,在每个方面,三位候选人的得分也不同,那么到 ...

  5. R语言应用实战-基于R语言的综合评价(层次分析法AHP为例)

    一.综合评价的基本概念 对一个事物的评价往往会涉及多个因素或者多个指标,评价是在多个因素相互作用下的一个综合判断.多指标综合评价方法具有以下的特点:包含若干个指标,分别说明被评价对象的不同方面,评价方 ...

  6. 2010年高教社杯全国大学生数学建模竞赛题目B题解析及层次分析法AHP在其中的应用

    2010年高教社杯全国大学生数学建模竞赛题目 B题 2010年上海世博会影响力的定量评估 2010年上海世博会是首次在中国举办的世界博览会.从1851年伦敦的"万国工业博览会"开始 ...

  7. MATLAB实现层次分析法AHP及案例分析

    层次分析法(Analytic Hierarchy Process, AHP) 1 模型背景 美国运筹学家匹兹堡大学教授Saaty在20世纪70年代初提出的一种层次权重决策分析方法. 层次分析法(Ana ...

  8. 数学建模之层次分析法AHP

    层次分析法(Analytic Hierarchy Process,AHP)这是一种定性和定量相结合的.系统的.层次化的分析方法.这种方法的特点就是在对复杂决策问题的本质.影响因素及其内在关系等进行深入 ...

  9. 层次分析法 AHP

    层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂.较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题.它是美国运筹学家 T. L. ...

最新文章

  1. java中正则表达式要进行转义的字符。
  2. SpringData —— HelloWorld
  3. c# unchecked关键字。byte 合并short
  4. java xor_java 简单xor加密
  5. 谈谈.NET MVC QMVC高级开发
  6. elementui树形复选框,element-ui checkbox 组件的树形联动
  7. ajax利用FormData、FileReader实现多文件上传php获取
  8. LVS类型的介绍以及LVS的调度方法
  9. scala的三个排序方法
  10. 每天一个linux命令(57):ss命令
  11. 天池大数据竞赛 阿里流行音乐艺人热度预测
  12. 萤石云 UIKit Javascript 使用
  13. 【day4】【洛谷算法题】-P5708三角形面积-刷题反思集[入门1顺序结构]
  14. 阿里云云计算:1. 云计算的概念
  15. Hyperledger Avalon启动笔记
  16. 3DMax模型输入到WPF中运行
  17. python编程遵循哪些规律_编程语言软件开发10个小技巧,Java、python、前端等都遵循此规律,108G资料放送中!...
  18. 十强队伍来了!网易云信 Innovation 2022 开发者大赛决赛名单公布
  19. nesC 1.1 语言参考手册 (1)
  20. 诺基亚e72微信怎么一直显示服务器繁忙啊,诺基亚E72微信自动关闭的解决办法

热门文章

  1. 中文文本纠错(CSC)任务Benchmark数据集SIGHAN介绍与预处理
  2. 修复引导mbrfix
  3. Ruoyi Vue版集成JFlowSpringBoot(成功版)
  4. LilyPond 乐谱软件
  5. python中的True 和 False详解
  6. 【白话机器学习系列】白话向量点积
  7. 大数据Hadoop视频教程
  8. O365邮箱添加日历权限 (Exchange类似)
  9. 简单抽样技术——简单随机样本方差是总体方差的无偏估计
  10. 求2011的N次方的后四位