AHP是最基础的评价类算法:
解决评价类问题,大家首先要想到以下三个问题:
(1) 我们评价的目标是什么?答:为小明同学选择最佳的旅游景点。
(2) 我们为了达到这个目标有哪几种可选的方案?答:三种,分别是去苏杭、去北戴河和去桂林。
(3) 评价的准则或者说指标是什么?(我们根据什么东西来评价好坏)答:景色、花费、居住、饮食、交通。
下面简述其算法步骤:
第一步:分析系统中各因素之间的关系,建立系统的递阶层次结构。
注意:如果你用到了层次分析法,那么这个层次结构图要放在你的建模论文中哦。
第二步:对于同一层次的各元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较矩阵(判断矩阵)
⭐⭐⭐判断矩阵怎么自己填
第三步:由判断矩阵计算被比较元素对于该准则的相对权重,并进行一致性检验(检验通过权重才能用)三种方法计算权重:(1)算术平均法(2)几何平均法(3)特征值法,一般三种方法都去计算,保证结果的稳健性。
⭐⭐⭐一致性检验步骤
第一步:计算一致性指标CI
第二步:查找对应的平均随机一致性指标RI
注:在实际运用中,n很少超过10,如果指标的个数大于10,则可考虑建立二级指标体系,或使用我们以后要学习的模糊综合评价模型。
第三步:计算一致性比例CR
如果CR<0.1,则可认为判断矩阵的一致性可以接受;否则需要对判断矩阵进行修正。
⭐⭐⭐Python算法实现:
import numpy as np
class AHP:
"""
相关信息的传入和准备
"""
def __init__(self, array):
## 记录矩阵相关信息
self.array = array
## 记录矩阵大小
self.n = array.shape[0]
# 初始化RI值,用于一致性检验
self.RI_list = [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,