提示:仅用到AHP层次分析法的部分功能因此只完成了python的部分实现
目录
- 前言
- 一、AHP是什么?
- 层次分析法的特点:
- 层次分析法的原理:
- 二、使用步骤
- 参考视频
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、AHP是什么?
层次分析法的特点:
层次分析法的特点是把复杂问题中的各种因素通过划分为相互联系的有序层次,使之条理化,根据对一定客观事实的主观判断结构,把专家意见和分析者的客观判断结果直接而有效的结合起来,将一层次元素两两比较的重要性进行定量描述。而后运用数学方法计算反映每一层次元素的相对重要性次序的权值,通过所有层次之间的总排序计算所有元素的相对权重并进行排序。
层次分析法的原理:
层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最底层(可供决策的方案/措施)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。
二、使用步骤
代码如下(示例):
import numpy as np
A = np.array([[1, 1/2, 2,1/3],[2,1,3,1/2],[1/2, 1/3, 1,1/3],[3,2,3,1]])
eigenvalue, featurevector = np.linalg.eig(A)
print(A)
print(eigenvalue)
print(featurevector)
# 当特征值与特征向量出现复数时,需要取主元并重新归一化
lambda_max=eigenvalue[0]
print(lambda_max)
omega=(eigenvalue[0]*np.real(featurevector[:,0]))/(sum(eigenvalue[0]*np.real(featurevector[:,0])))
print(omega)
# 一致性检验
CI=(lambda_max-A.shape[0])/(A.shape[0]-1)
print(CI)
RI=[0,0,0.58,0.90,1.12,1.24,1.32,1.41,1.45,1.49,1.51]
print(RI[A.shape[0]-1])
CR=CI/RI[A.shape[0]-1]
print(CR)
if CR<0.1:
print('通过')
else:
print('不通过')
参考视频
https://haokan.baidu.com/v?pd=wisenatural&vid=4471994357328562692