用python实现层次分析法(AHP)
层次分析法是数学建模的入门算法,类似于算法竞赛中的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)相关推荐
- Python实现“层次分析法”及“自调节层次分析法”
Python实现"层次分析法"及"自调节层次分析法" 假设我们遇到如下问题: ①对于M个方案,每个方案有N个属性,在已知各个方案每个属性值&&任 ...
- 熵权法EW与层次分析法AHP之数学原理及实例
1.概述 对于多指标或多目标决策问题,由于涉及到多个指标或属性,在对实测数据进行评价时,需要确定这些指标之间的相互权重,各指标权重的客观性与合理性也会大大影响到最终的评价结果.目前对于指标权重确定的方 ...
- 【数学建模】层次分析法(AHP)-Python实现
1 前言 本文主要讲解层次分析法(AHP)的python实现,后续会跟进实例分析 2 代码实现 导入包 import numpy as np 2.1 构造判断矩阵 判断矩阵一般采用专家意见法,也就是德 ...
- 层次分析法AHP - 代码注释多 - ( 数据建模 Python代码)
实际生活中,往往有一些很复杂的系统,我们没办法直观草率的确定权重,比如甲.乙.丙三人竞选总统,严谨的说,需要从三人的社交能力.管理能力.经济能力等方面来考虑,在每个方面,三位候选人的得分也不同,那么到 ...
- R语言应用实战-基于R语言的综合评价(层次分析法AHP为例)
一.综合评价的基本概念 对一个事物的评价往往会涉及多个因素或者多个指标,评价是在多个因素相互作用下的一个综合判断.多指标综合评价方法具有以下的特点:包含若干个指标,分别说明被评价对象的不同方面,评价方 ...
- 2010年高教社杯全国大学生数学建模竞赛题目B题解析及层次分析法AHP在其中的应用
2010年高教社杯全国大学生数学建模竞赛题目 B题 2010年上海世博会影响力的定量评估 2010年上海世博会是首次在中国举办的世界博览会.从1851年伦敦的"万国工业博览会"开始 ...
- MATLAB实现层次分析法AHP及案例分析
层次分析法(Analytic Hierarchy Process, AHP) 1 模型背景 美国运筹学家匹兹堡大学教授Saaty在20世纪70年代初提出的一种层次权重决策分析方法. 层次分析法(Ana ...
- 数学建模之层次分析法AHP
层次分析法(Analytic Hierarchy Process,AHP)这是一种定性和定量相结合的.系统的.层次化的分析方法.这种方法的特点就是在对复杂决策问题的本质.影响因素及其内在关系等进行深入 ...
- 层次分析法 AHP
层次分析法(Analytic Hierarchy Process,简称 AHP)是对一些较为复杂.较为模糊的问题作出决策的简易方法,它特别适用于那些难于完全定量分析的问题.它是美国运筹学家 T. L. ...
最新文章
- 电子书下载:Programming Windows Phone 7 SE2
- 在im4java中使用GraphicsMagick
- 《大数据》第1期“论坛”——对大数据国家战略的几点考虑
- 21个WordPress店铺必备免费工具
- Unity UGUI实现鼠标拖动图片
- 写入多个表_制作属于自己的教学工作表
- mysql游标是什么特性_[转]MySQL游标特性
- wpa_supplicant 中 ISupplicant 服务代理客户端对象获取
- java socket第三方库_Java基于Socket实现HTTP下载客户端
- tornado tcpclient 应用实例
- 传奇世界服务端WIN7简单安装教程
- 【汉字转拼音工具】Java 汉字转拼音
- 莫队-一个让查询的高效的方法-并不深刻的讲解文章-但是易懂!
- 18.5.30集训阶段性小结
- 白帽,黑帽,灰帽,绿帽!一文了解黑客的所有信息
- 基于JAVA客服管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
- Windows补丁查找及安装
- 图像算法工程师常考的面试问题附回答
- Ubuntu 18 安装eclipse
- ajax返回字符串怎么处理,ajax请求返回json字符串/json对象 处理