【建模算法】层次分析法(Python实现)

这篇具有很好参考价值的文章主要介绍了【建模算法】层次分析法(Python实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【建模算法】层次分析法(Python实现)

01 算法用途

在很多情况下,我们对事物评价,应该要多维度评价。多维度评价之后我们要如何把它们合并成一个指标用于比较事物的好坏呢,这时候需要对各个指标赋权, 层次分析法就是用来赋权重的了。
这个方法主观性比较强,在数据集比较小,实在不好比较的时候可以用这个方法,如果有别的选择还是尽量不要用这个算法比较好。可以看下以往建模获奖论文,此算法的出现频率还是挺高的,所以存在即有它存在的道理。

02 建模案例

小美要选男朋友了,现有小明、小李两个人选,到底该选谁呢?现在小美要从四个指标去选择,分别是身高、颜值、学历、性格。小美对他们各个指标的评分如下:

层次分析法python代码,数学建模,算法,python,矩阵

这也太难抉择了吧!!

03 原理解析

step1:小美查阅图书资料,选择依据如下:
层次分析法python代码,数学建模,算法,python,矩阵
step2:小美开始构造判断矩阵

小美的主观判断:

1.身高与颜值相比,身高稍重要

2.身高与学历相比,同样重要

3.身高和性格相比,性格稍重要

4.颜值和学历相比,学历介于相同重要和稍微重要之间

5.颜值和性格相比,性格明显重要

6.性格和学历相比,性格稍重

身高 颜值 学历 性格
身高 1 3 1 1/3
颜值 1/3 1 1/2 1/5
学历 1 2 1 1/3
性格 3 5 3 1

小美终于得到了判断矩阵。
层次分析法python代码,数学建模,算法,python,矩阵

step3:翻阅图书,小美找到检验标准

对判断矩阵的一致性检验的步骤如下:

  • 计算一致性指标CI
    层次分析法python代码,数学建模,算法,python,矩阵
    查找相应的平均随机一致性指标RI,对n=1,…,9,Satty给出了RI的值如下表所示:

层次分析法python代码,数学建模,算法,python,矩阵

RI是通过随机方法构造500个样本矩阵,随机地从1~9及其例数中抽取数字构造正反矩阵,求最大特征根的平均值 λ m a x \lambda_{max} λmax并定义
R I = λ m a x − n n − 1 RI=\frac{\lambda_{max}-n}{n-1} RI=n1λmaxn

  • 计算一致性比例CR
    C R = C I R I CR=\frac{CI}{RI} CR=RICI
    当 CR<0.10时,一致性接受,否则该矩阵应该适当修改参数

step4 :计算权重以及得分

  • 得到最大特征值对应特征向量

T = [ t 1 t 2 . . . t n ] T=[t_1\quad t_2\quad ...\quad t_n] T=[t1t2...tn]

  • 得到权重向量

W = [ w 1 w 2 . . . w n ] w i = t i ∑ i = 1 n t i W=[w_1\quad w_2\quad ... \quad w_n]\\ w_i=\frac{t_i}{\displaystyle \sum^n_{i=1}t_i} W=[w1w2...wn]wi=i=1ntiti

  • 小美对男嘉宾的评分为P,最后得分S

S = P × W S=P\times W S=P×W

真相大白,小明是最佳选择~得分如下
层次分析法python代码,数学建模,算法,python,矩阵文章来源地址https://www.toymoban.com/news/detail-814084.html

Python源码

#层次分析法完整代码:
import numpy as np

#计算特征向量和最大特征值
a=np.array([[1,3,1,1/3],[1/3,1,1/2,1/5],[1,2,1,1/3],[3,5,3,1]])   #a为自己构造的输入判别矩阵
w=np.linalg.eig(a)   #np.linalg.eig(matri)返回特征值和特征向量
tzz=np.max(w[0])   #最大特征值
t=np.argwhere(w[0]==tzz) #寻找最大特征值所在的行和列
tzx=w[1][::-1,t[0]]    #最大特征值对应的特征向量

#一致性检验
RILIST=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59]
n=a.shape[0]
RI=RILIST[n]
CI=(tzz-n)/(n-1)
CR=CI/RI
print(CR)
print("通过一致性检验") if CR<0.1 else print("没有通过一致性检验")

P=np.array([[8,7,6,8],[7,8,8,7]])  #每一行代表一个对象的指标评分
#赋权重
quan=np.zeros((n,1));
quan=tzx/sum(tzx)
Q=quan

#显示出所有评分对象的评分值
score=np.dot(P,Q)    #矩阵乘法
for i in range(len(score)):
    print('对象{:}得分={:}'.format(i+1,score[i,0].real))

到了这里,关于【建模算法】层次分析法(Python实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数学建模学习】matlab实现评价模型——层次分析法(AHP)

    目录 1概述  2算法实现流程 3实例  4matlab实现层次分析法 5计算结果 层次分析法,简称AHP,是评价模型中的一种算法,指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。层次分析法的缺陷在于判断矩阵是主观决定的,

    2024年02月04日
    浏览(56)
  • 评价模型(一) 层次分析法(AHP),熵权法,TOPSIS分析 及其对应 PYTHON 实现代码和例题解释

    数学建模系列文章: 以下是个人在准备数模国赛时候的一些模型算法和代码整理,有空会不断更新内容: 评价模型(一)层次分析法(AHP),熵权法,TOPSIS分析 及其对应 PYTHON 实现代码和例题解释 评价模型(二)主成分分析、因子分析、二者对比及其对应 PYTHON 实现代码和例

    2024年02月08日
    浏览(62)
  • 数学建模:层次分析法

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 将问题条理化,层次化,构建出一个有层次的结构模型。层次分为三类: 目标层,准则(指标)层,方案层 。 比较指标层中不同指标之间的相对重要程度,并且构建一个 成对比较矩阵 。 自行判断两个不同指标的相对重要程

    2024年02月10日
    浏览(46)
  • 数学建模——层次分析法

    正互反矩阵:若矩阵中每个元素a(ij)0且满足a(ij)*a(ji)=1。 层次分析法中,我们构造的判断矩阵均是正互反矩阵。 一致矩阵:若正互反矩阵满足a(ij)*a(jk)=a(ik)。 一致矩阵的秩为1。 一致矩阵有一个特征值为n,其余特征值均为0。 判断矩阵越不一致时,最大特征值与n相差越大。 一

    2024年02月16日
    浏览(41)
  • 数学建模:层次分析法(AHP)

    层次分析法(Analytic Hierarchy Process,AHP)是一种多准则决策方法,用于解决复杂的决策问题。它是由美国数学家托马斯·萨亚基(Thomas L. Saaty)于20世纪70年代提出的。其基本思想是将复杂的决策问题分解为层次结构,通过对准则和方案进行定量和定性的比较,最终得出最佳决

    2024年01月17日
    浏览(58)
  • 数学建模——层次分析法(AHP)

    在人类社会生活的各个领域以及日常生活中,我们经常遇到一些决策问题,例如购物买钢笔,一般要依据质量、颜色、实用性、价格、外形等方面的因素选择某一支钢笔。买饭,则要依据色、香、味、价格等方面的因素选择某种饭菜。过去人们处理这些问题往往是凭经验,靠

    2024年02月05日
    浏览(51)
  • 五、数学建模之层次分析法

    1.概念 2.例题    层次分析法 (Analytic Hierarchy Process,AHP)是一种多 标准决策分析方法 ,用于帮助人们在面对复杂的决策问题时 进行定量和定性的比较和评估 。它最初由美国运筹学家和管理学家托马斯·萨蒙(Thomas L. Saaty)于20世纪70年代提出,并在后来得到广泛应用。层

    2024年02月07日
    浏览(55)
  • 【数学建模】层次分析法(AHP)

    评价类问题 ,如选择哪种方案最好,哪位运动员或者员工表现地更优秀。通常具体数据没有给出。 一道典型例题 这是典型的运用层次分析法的题目,没有给出具体数据,要求采取一定措施进行评价,选择最佳方案,其中已经高亮。 我们需要考虑三个问题: 目标、方

    2024年02月01日
    浏览(41)
  • 数学建模学习笔记||层次分析法

    解决评价类问题首先需要想到一下三个问题 我们评价的目标是什么 我们为了达到这个目标有哪几种可行方案 评价的准则或者说指标是什么 对于以上三个问题,我们可以根据题目中的背景材料,常识以及网上收集到的参考资料进行结合,从而筛选出最合适的指标 优先选择知

    2024年01月23日
    浏览(56)
  • 清风老师数学建模笔记——层次分析法

    1.层次分析法的概念;层次分析法(The Analytic Hierarchy Process即 AHP)是由美国运筹学家、匹兹堡大学教授T . L. Saaty于20世纪70年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。 2.层次

    2024年02月02日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包