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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

先对评价表中的每个因素隶属于各个评语的程度进行评价(专家打分或隶属度函数)。以部分投票结果为例。

10名专家分别打分,以“持证上岗”准则为例,对“人员专业化”单因素模糊评价,选优秀1人,良好5人,一般3人,较差2人,非常差0人,按频率占比方法则优秀为0.1,如下表所示。

1.4. 建立综合评价模型

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

在实例中,最后得到的模糊向量为B=A1×m∘Rm×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×m​∘Rm×n​=(0.18907668,0.33971352,0.28392126,0.1477013,0.03958725),由计算结果可见,该成果应被评为良好。

1.5. 确定总分

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

在实例中,优秀的级分肯定最高,其次是良好,依次往下,设级分依次为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,:].valuesv2 = df.iloc[2:5,:].valuesv3 = df.iloc[5:9,:].valuesv4 = df.iloc[9:12,:].valuesv5 = df.iloc[12:16,:].valuesvv = [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)当指标因素集UUU较大,即指标集个数凡较大时,在权矢量和为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月

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

  1. 优选法和newton法在实践中的比较(分析原因)

    优选法和newton法在实践中的比较(分析原因) 优选法得到应用的原因是在它所表示的情况下,上一次判断总能给下一次判断节省一次,下面来证明: 假设长度为l的线段,其中的黄金分割点分别为x,这个点的对称 ...

  2. Python的应用及优缺点分析

    1. 主要应用领域 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube,Dropbox,豆瓣,典型WEB框架 ...

  3. 灰色关联分析法详解及python实践

    1. 关于灰色关联分析 1.1. 什么是灰色关联分析 灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧 ...

  4. 数学建模——层次分析法Python代码

    数学建模--层次分析法Python代码 import numpy as np class AHP: """ 相关信息的传入和准备 """ d ...

  5. 原理+代码|详解层次聚类及Python实现/层次树怎么看/如何从层次树中查看聚类过程(附源数据)

    前言 聚类分析是研究分类问题的分析方法,是洞察用户偏好和做用户画像的利器之一.聚类分析的方法非常多,能够理解经典又最基础的聚类方法 -- 层次聚类法(系统聚类) 的基本原理并将代码用于实际的业务案例是 ...

  6. 机器学习算法与Python实践之(二)支持向量机

    http://blog.csdn.net/zouxy09/article/details/17291543 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己 ...

  7. python原理及代码_原理+代码|详解层次聚类及Python实现

    前言 聚类分析是研究分类问题的分析方法,是洞察用户偏好和做用户画像的利器之一.聚类分析的方法非常多,能够理解经典又最基础的聚类方法 -- 层次聚类法(系统聚类) 的基本原理并将代码用于实际的业务案例是 ...

  8. 【时间序列】Holt-Winters 指数平滑方法及其 Python 实践

    背景 指数平滑是在 20 世纪 50 年代后期提出的,并激发了一些十分成功的预测方法.使用指数平滑方法生成的预测是过去观测值的加权平均值,并且随着过去观测值离预测值距离的增大,权重呈指数型衰减.换句话 ...

  9. 计算机课小组主题作业,计算机应用课程小组学习法的实践

    计算机应用课程小组学习法的实践 本文关键词:计算机应用,小组,学习法,实践,课程 计算机应用课程小组学习法的实践 本文简介:摘要针对"计算机应用"课程面临的问题,进行小组学习法改革 ...

  10. SAP资产折旧-工作量法业务实践和实操

    文章目录 一.资产折旧概述 二.工作量法业务实践 2.1 相关数值计算 三.工作量法实操 3.1 配置折旧码-AFAMA 3.2 维护工作量-A025 / S_ALR_87009161 3.3 资产折 ...

最新文章

  1. Good Technology 产品特色
  2. hexo 环境变量_小白使用 Github + Hexo 从 0 搭建一个博客
  3. MFC中为菜单命令添加快捷键
  4. 软件项目经理应该具备的心态
  5. linux+PATH
  6. SVN客户端smartsvn详细功能
  7. 信息论基础(考试复习,针对考点)
  8. 五色电阻在线计算机,色环电阻(5色环在线电阻计算器)
  9. php-screw 安装,PHP_SCREW安装
  10. 中国生物农药行业需求态势及“十四五”前景规划报告(2022-2027年)
  11. ubuntu16 下安装 dnw 给开发板传输文件,出现的问题以及解决方法
  12. 回文序列-2017网易校园招聘
  13. 网络攻击——流量劫持
  14. linux unix 可视化界面,Linux/UNIX远程调用图形化界面的一种方法
  15. layui弹出层闪退,layer弹出层闪退,layer弹出层坑
  16. 基于MATLAB控制系统辨识系列2-最小二乘法
  17. 磁盘阵列(Raid分类与条带化)
  18. python 判断一组数字是存在连续的规律
  19. 通用人工智能(AGI):人工智能的下一个阶段
  20. C++STL详解(六)——stack和queue

热门文章

  1. matlab中将数据存为dat格式,matlab中将数据保存为txt或dat格式四种方案
  2. 机器学习------结构因果机制(SCM)、因果关系、因果推断
  3. OWASP zap 代理设置
  4. Suppressing Uncertainties for Large-Scale Facial Expression Recognition(2020CVPR)
  5. android图片自动翻转,android图片翻转镜像
  6. html求相关系数,关于pearson相关系数的意义
  7. numpy.arccos详解
  8. Java基础——类与对象
  9. PAT A 1013. Battle Over Cities
  10. 两个月攻克系统集成项目管理工程师