模糊层次综合分析法Python实践及相关优缺点分析

模糊综合评价法(FCE,Fuzzy Comprehension Evaluation Method)是一种根据模糊数学隶属度理论把定性评价转化为定量评价的方法,它具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。

FCE计算的前提条件之一是确定各个评价指标的权重,也就是权向量, 它一般由决策者直接指定,但对于复杂的问题,例如评价指标很多并且相互之间存在影响关系, 直接给出各个评价指标的权重比较困难, 而这个问题正是AHP所擅长的。

1. 模糊综合评价算法步骤

我们假设以企业组织和管理水平评价为例,用模糊综合评价方法给出定量评价,其中主要涉及模糊综合评价法(模糊数学范畴)和层次综合分析法(运筹学范畴)理论知识,以及线性代数矩阵运算基础,本文重点介绍模糊综合评价法。

首先举例,我们先看模糊综合评价数据表,这是专家(或其他统计方式)对评价打分表投票表决结果统计数据,简单的说就是对需要评价的因素(指标)给出主管或客观的“优、良、一般、较差、非常差”评价。这样,我们能给企业什么样的评价呢?
在这里插入图片描述

1.1. 确定因素集及权重向量

因素集是以影响评价对象的各种因素为元素所组成的一个普通集合,通常用 U U U表示, U = ( u 1 , u 2 , ⋯   , u m ) U=(u_{1},u_{2},\cdots ,u_{m}) U=(u1,u2,,um),其中元素 u i u_{i} ui代表影响评价对象的第i个因素。这些因素,通常都具有不同程度的模糊性。

这里假设评定公司组织与管理水平的指标集为 U = ( u 1 , u 2 , u 3 , u 4 , u 5 ) U=(u_{1},u_{2},u_{3},u_{4},u_{5}) U=(u1,u2,u3,u4,u5) u 1 u_{1} u1表示为持证上岗, u 2 u_{2} u2表示组织赋能, u 3 u_{3} u3表示合规管理, u 4 u_{4} u4表示员工赋能, u 5 u_{5} u5表示绩效管理。

由于实际评价业务中往往是因素集中元素较多(指标太多),我们通常可以对其进行归类分层分析。比如下表的评价标准,通过准则层和因素层形成多级指标,这里就要用到多级模糊综合评价。(一般一级不超过5个)

上表中的权重来自AHP(层次分析法)[1],其中因素集和权重矩阵实际数据如下表所示。其中,权重使用AHP(层次分析法)[1]完成的,权重逐层分解,例如“持证上岗”权重分解到“人员专业化”和“人员持证率”两项权重。因素集 u 1 = ( u 11 , u 12 ) u_{1}=(u_{11},u_{12}) u1=(u11,u12)与因素集 u 2 = ( u 21 , u 22 , u 23 ) u_{2}=(u_{21},u_{22},u_{23}) u2=(u21,u22,u23)之间,在因素层没有直接关系,其各自权重分别独立使用。
在这里插入图片描述

1.2. 建立综合评价的评价集

评价集是评价者对评价对象可能做出的各种结果所组成的集合,通常用 V V V表示, V = ( v 1 , v 2 , ⋯   , v n ) V=(v_{1},v_{2},\cdots,v_{n}) V=(v1,v2,,vn),其中元素 v j v_{j} vj 代表第j种评价结果,可以根据实际情况的需要,用不同的等级、评语或数字来表示(注意下文中出现的m和n,m表示m个因素集,n 表示n 个评价集)。

这里设评定公司组织和管理等级的评价集为 V = ( v 1 , v 2 , v 3 , v 4 n , v 5 ) V=(v_{1},v_{2},v_{3},v_{4n},v_{5}) V=(v1,v2,v3,v4n,v5) v 1 , v 2 , v 3 , v 4 n , v 5 v_{1},v_{2},v_{3},v_{4n},v_{5} v1,v2,v3,v4n,v5分别表示“优秀、良好、一般、较差、非常差”。

1.3. 进行单因素模糊评价,获得评价矩阵

若因素集 U U U中第i个元素对评价集 V V V中第1个元素的隶属度为 r i 1 r_{i1} ri1,则对第i个元素单因素评价的结果用模糊集合表示为: R i = ( r i 1 , r i 2 , ⋯   , r i n ) R_{i}=(r_{i1},r_{i2},\cdots,r_{in}) Ri=(ri1,ri2,,rin),以m个单因素评价集 R 1 , R 2 , ⋯   , R m R_{1},R_{2},\cdots,R_{m} R1,R2,,Rm为行组成矩阵 R n × m R_{n\times m} Rn×m,称为模糊综合评价矩阵。

先对评价表中的每个因素隶属于各个评语的程度进行评价(专家打分或隶属度函数)。以部分投票结果为例。
在这里插入图片描述
10名专家分别打分,以“持证上岗”准则为例,对“人员专业化”单因素模糊评价,选优秀1人,良好5人,一般3人,较差2人,非常差0人,按频率占比方法则优秀为0.1,如下表所示。
在这里插入图片描述

1.4. 建立综合评价模型

确定单因素评判矩阵R和因素权向量 A A A之后,通过模糊变化将 U U U上的模糊向量 A A A变为 V V V上的模糊向量 B B B,即 B = A 1 × m ∘ R m × n = ( b 1 , b 2 , ⋯   , b n ) B=A_{1 \times m}\circ R_{m \times n} = (b_{1},b_{2},\cdots,b_{n}) B=A1×mRm×n=(b1,b2,,bn) 。 其中 ∘ \circ 称为综合评价合成算子,这里取成一般的矩阵乘法即可。

在实例中,最后得到的模糊向量为 B = A 1 × m ∘ R m × n = ( 0.18907668 , 0.33971352 , 0.28392126 , 0.1477013 , 0.03958725 ) B=A_{1 \times m}\circ R_{m \times n} = (0.18907668,0.33971352,0.28392126,0.1477013,0.03958725) B=A1×mRm×n=(0.18907668,0.33971352,0.28392126,0.1477013,0.03958725),由计算结果可见,该成果应被评为良好。
在这里插入图片描述

1.5. 确定总分

综合评价模型确定后,确定系统得分,即 F = B 1 × n × S 1 × n T F = B_{1 \times n} \times S^{T}_{1 \times n} F=B1×n×S1×nT ,其中 F F F为系统总得分, S S S V V V 中相应因素的级分。

在实例中,优秀的级分肯定最高,其次是良好,依次往下,设级分依次为 S = ( 1 , 0.8 , 0.6 , 0.4 , 0.2 ) S = (1,0.8,0.6,0.4,0.2) S=(1,0.8,0.6,0.4,0.2),则该成果最后的系统总得分为69.82。

如果是多目标的模糊综合评价,对于同一批专家打分,最后的系统总得分就相对来说较为可信,从本例来看,就可以对各个成果相互比较最后的综合得分。

2. Python实践

本文代码只是较上篇层次分析内容[1],新增函数及相关内容。

#模糊综合评价法(FCE),输入准则权重、因素权重
def fuzzy_eval(criteria, eigen):
    #量化评语(优秀、    良好、    一般、    较差、   非常差)
    score = [1,0.8,0.6,0.4,0.2]
    
    df = get_DataFromExcel()
    print('单因素模糊综合评价:{}\n'.format(df))
    #把单因素评价数据,拆解到5个准则中
    v1 = df.iloc[0:2,:].values
    v2 = df.iloc[2:5,:].values
    v3 = df.iloc[5:9,:].values
    v4 = df.iloc[9:12,:].values
    v5 = df.iloc[12:16,:].values
   
    vv = [v1,v2,v3,v4,v5]
   
    val = []
    num = len(eigen)
    for i in range(num):
        v = np.dot(np.array(eigen[i]),vv[i])
        print('准则{} , 矩阵积为:{}'.format(i+1,v))
        val.append(v)
       
    # 目标层
    obj = np.dot(criteria, np.array(val))
    print('目标层模糊综合评价:{}\n'.format(obj))
    #综合评分
    eval = np.dot(np.array(obj),np.array(score).T)
    print('综合评价:{}'.format(eval*100))
       
   
    return
#获取专家评价数据
def get_DataFromExcel():
    df = pd.read_excel('FCE.xlsx') 

    return df

其中“FCE.xlsx”评价统计数据格式如下表所示,横向相加等于1.
在这里插入图片描述
运行程序,输出结果:

单因素模糊综合评价:    
 优秀   良好   一般   较差  非常差
0   0.1  0.4  0.3  0.2  0.0
1   0.5  0.3  0.2  0.0  0.0
2   0.2  0.3  0.2  0.1  0.2
3   0.0  0.2  0.3  0.3  0.2
4   0.2  0.2  0.3  0.2  0.1
5   0.5  0.3  0.2  0.0  0.0
6   0.1  0.3  0.3  0.2  0.1
7   0.1  0.1  0.4  0.2  0.2
8   0.0  0.1  0.3  0.3  0.3
9   0.2  0.3  0.4  0.1  0.0
10  0.1  0.3  0.5  0.1  0.0
11  0.2  0.5  0.3  0.0  0.0
12  0.3  0.3  0.3  0.1  0.0
13  0.1  0.3  0.3  0.2  0.1
14  0.1  0.1  0.5  0.2  0.1
15  0.2  0.3  0.3  0.1  0.1

准则1 , 矩阵积为:[0.16666667 0.38333333 0.28333333 0.16666667 0.        ]
准则2 , 矩阵积为:[0.14472991 0.2595379  0.2404621  0.16809714 0.18717295]
准则3 , 矩阵积为:[0.35043549 0.26809492 0.24801728 0.07691281 0.0565395 ]
准则4 , 矩阵积为:[0.18080794 0.33487429 0.40175492 0.08256285 0.        ]
准则5 , 矩阵积为:[0.22502982 0.27605619 0.32394381 0.13378032 0.04118986]
目标层模糊综合评价:[0.18907668 0.33971352 0.28392126 0.1477013  0.03958725]

综合评价:69.81982179113338

3. 模糊综合评价法及层次分析法优缺点

3.1. 模糊综合评价法优缺点

1、模糊综合评价法的优点

(1)模糊评价通过精确的数字手段处理模糊的评价对象,能对蕴藏信息呈现模糊性的资料作出比较科学、合理、贴近实际的量化评价;

(2)评价结果是一个矢量,而不是一个点值,包含的信息比较丰富,既可以比较准确的刻画被评价对象,又可以进一步加工,得到参考信息。

2、模糊综合评价法的缺点

(1)计算复杂,对指标权重矢量的确定主观性较强;

(2)当指标因素集 U U U较大,即指标集个数凡较大时,在权矢量和为1的条件约束下,相对隶属度权系数往往偏小,权矢量与模糊矩阵R不匹配,结果会出现超模糊现象,分辨率很差,无法区分谁的隶属度更高,甚至造成评判失败,此时可用分层模糊评估法加以改进。

3.2. 层次分析法优缺点

1、层次分析法优点

(1)系统性的分析方法
层次分析法把研究对象作为一个系统,按照分解、比较判断、综合的思维方式进行决策,层次分析法中每一层的权重设置最后都会直接或间接影响到结果,而且在每个层次中的每个因素对结果的影响程度都是量化的,非常清晰、明确。这种方法尤其可用于对无结构特性的系统评价以及多目标、多准则、多时期等的系统评价。

(2)简洁实用的决策方法
这种方法是把定性方法与定量方法有机地结合起来,使复杂的系统分解,能将人们的思维过程数学化、系统化,便于人们接受,且能把多目标、多准则又难以全部量化处理的决策问题化为多层次单目标问题,通过两两比较确定同一层次元素相对上一层次元素的数量关系后,最后进行简单的数学运算。具有中等文化程度的人即可以了解层次分析法的基本原理并掌握该法的基本步骤,计算也非常简便,并且所得结果简单明确,容易被决策者了解和掌握。

(3)所需定量数据信息较少
层次分析法主要是从评价者对评价问题的本质、要素的理解出发,比一般的定量方法更讲求定性的分析和判断。由于层次分析法是一种模拟人们决策过程的思维方式的一种方法,层次分析法把判断各要素的相对重要性的步骤留给了大脑,只保留人脑对要素的印象,化为简单的权重进行计算。这种思想能处理许多用传统的最优化技术无法着手的实际问题。

2、层次分析法缺点

(1)不能为决策提供新方案
层次分析法的作用是从备选方案中选择较优者。这个作用正好说明了层次分析法只能从原有方案中进行选取,而不能为决策者提供解决问题的新方案。

(2)定量数据较少,定性成分多,不易令人信服
在如今对科学的方法的评价中,一般都认为一门科学需要比较严格的数学论证和完善的定量方法。但现实世界的问题和人脑考虑问题的过程很多时候并不是能简单地用数字来说明一切的。层次分析法是一种带有模拟人脑的决策方式的方法,因此必然带有较多的定性色彩。

(3)指标过多时数据统计量大,且权重难以确定
当我们希望能解决较普遍的问题时,指标的选取数量很可能也就随之增加。这就像系统结构理论里,我们要分析一般系统的结构,要搞清楚关系环,就要分析到基层次,而要分析到基层次上的相互关系时,我们要确定的关系就非常多了。指标的增加就意味着我们要构造层次更深、数量更多、规模更庞大的判断矩阵。那么我们就需要对许多的指标进行两两比较的工作。由于一般情况下我们对层次分析法的两两比较是用1至9来说明其相对重要性,如果有越来越多的指标,我们对每两个指标之间的重要程度的判断可能就出现困难了,甚至会对层次单排序和总排序的一致性产生影响,使一致性检验不能通过,也就是说,由于客观事物的复杂性或对事物认识的片面性,通过所构造的判断矩阵求出的特征向量(权值)不一定是合理的。也就是说,层次分析法里面没有办法指出我们的判断矩阵里哪个元素出了问题。

(4)特征值和特征向量的精确求法比较复杂
在求判断矩阵的特征值和特征向量时,所用的方法和我们多元统计所用的方法是一样的。在二阶、三阶的时候,我们还比较容易处理,但随着指标的增加,阶数也随之增加,在计算上也变得越来越困难。不过幸运的是这个缺点比较好解决,我们有三种比较常用的近似计算方法。第一种就是和法,第二种是幂法,还有一种常用方法是根法。

3.3. 与神经网络对比分析

由于传统分析方法属于小样本范畴,随着近期小样本大数据需求的发展,基于小样本的深度学习进入人们研究的视野,稍后再分析模糊层次综合分析法与神经网络或深度学习的对比。

扩展资料

为了便于描述,依据模糊数学的基本概念,对模糊综合评价法中的有关术语定义如下:

1.评价因素(F):是指对招标项目评议的具体内容(例如,价格、各种指标、参数、规范、性能、状况,等等)。

为便于权重分配和评议,可以按评价因素的属性将评价因素分成若干类(例如,商务、技术、价格、伴随服务,等),把每一类都视为单一评价因素,并称之为第一级评价因素(F1)。第一级评价因素可以设置下属的第二级评价因素(例如,第一级评价因素“商务”可以有下属的第二级评价因素:交货期、付款条件和付款方式,等)。第二级评价因素可以设置下属的第三级评价因素(F3)。依此类推。

2.评价因素值(Fv):是指评价因素的具体值。例如,某投标人的某技术参数为120,那么,该投标人的该评价因素值为120。

3.评价值(E):是指评价因素的优劣程度。评价因素最优的评价值为1(采用百分制时为100分);欠优的评价因素,依据欠优的程度,其评价值大于或等于零、小于或等于1(采用百分制时为100分),即0≤E≤1(采用百分制时0≤E≤100)。

4.平均评价值(Ep):是指评标委员会成员对某评价因素评价的平均值。

平均评价值(Ep)=全体评标委员会成员的评价值之和÷评委数

5.权重(W):是指评价因素的地位和重要程度。

第一级评价因素的权重之和为1;每一个评价因素的下一级评价因素的权重之和为1 。

6.加权平均评价值(Epw):是指加权后的平均评价值。

加权平均评价值(Epw)=平均评价值(Ep)×权重(W)。

7.综合评价值(Ez):是指同一级评价因素的加权平均评价值(Epw)之和。综合评价值也是对应的上一级评价。

由于编者水平有限,欢迎反馈交流。

参考:

[1]《AHP(层次分析法)学习笔记及多层权重Python实践》 CSDN博客 ,肖永威 ,2020.09
[2]《层次分析法和模糊综合评价法优缺点》 百度知道 k656691k ,2017年9月
[3]《模糊综合评价理论》 搜狐 , 糖醋花椒 , 2018年11月
[4]《数模系列(3):模糊综合评价法》 知乎 ,00木水 ,2018年1月

相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页