层次分析法是数学建模的入门算法,类似于算法竞赛中的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. 电子书下载:Programming Windows Phone 7 SE2
  2. 在im4java中使用GraphicsMagick
  3. 《大数据》第1期“论坛”——对大数据国家战略的几点考虑
  4. 21个WordPress店铺必备免费工具
  5. Unity UGUI实现鼠标拖动图片
  6. 写入多个表_制作属于自己的教学工作表
  7. mysql游标是什么特性_[转]MySQL游标特性
  8. wpa_supplicant 中 ISupplicant 服务代理客户端对象获取
  9. java socket第三方库_Java基于Socket实现HTTP下载客户端
  10. tornado tcpclient 应用实例
  11. 传奇世界服务端WIN7简单安装教程
  12. 【汉字转拼音工具】Java 汉字转拼音
  13. 莫队-一个让查询的高效的方法-并不深刻的讲解文章-但是易懂!
  14. 18.5.30集训阶段性小结
  15. 白帽,黑帽,灰帽,绿帽!一文了解黑客的所有信息
  16. 基于JAVA客服管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  17. Windows补丁查找及安装
  18. 图像算法工程师常考的面试问题附回答
  19. Ubuntu 18 安装eclipse
  20. ajax返回字符串怎么处理,ajax请求返回json字符串/json对象 处理

热门文章

  1. 数据库审计系统-数据库安全审计工具
  2. 勇芳VFB的Miniblink组件实现文件下载
  3. 程序员买房指南——LZ的三次买房和一次卖房经历
  4. Kubernetes DaemonSet使用详解
  5. Virtual Villagers 攻略
  6. 侯捷C++->三大函数:拷贝构造、拷贝赋值、析构
  7. 查看apk的包名和启动页activity,adb命令启动app
  8. VBA过程调用和参数传递
  9. 微立体岗位竞聘PPT模板
  10. html设置表单透明度,css利用transparent属性设置透明度的方法