模糊综合评判法

模糊综合评价法是一种基于模糊数学(fuzzy mathematics)的综合评价方法。该综合评价法根据模糊数学的隶属度理论把定性评价转化为定量评价,即用模糊数学对受到多种因素制约的事物或对象做出一个总体的评价。它具有结果清晰,系统性强的特点,能较好地解决模糊的、难以量化的问题,适合各种非确定性问题的解决。

在司守奎《数学建模算法与应用》(第2版)一书的14.2节,介绍了将该方法用于多目标决策的过程,实现了在人事考核中运用模糊综合评判。本文中的数据和步骤都基于此书的内容,重点在于代码。

一级模糊综合评判的步骤

一级评判的运算较为简单,没有专门的程序,重在理解其思路。
(1)确定因素集。对员工的表现,需要从多个方面进行综合评判,如员工的工作业绩、工作态度、沟通能力、政治表现等。所有这些因素构成了评价指标体系集合,即因素集,记为

(2)确定评语集。由于每个指标的评价值的不同,往往会形成不同的等级。如对工作业绩的评价有好、较好、中等、较差、很差等。由各种不同决断构成的集合称为评语集,记为

(3)确定各因素的权重。一般情况下,因素集中的各因素在综合评价中所起的作用是不相同的,综合评价结果不仅与各因素的评价有关,而且在很大程度上还依赖于各因素对综合评价所起的作用,这就需要确定一个各因素之间的权重分配,它是U上的一个模糊向量,记为

其中,所有a的和为1。
权重的确定方法很多,在实际运用中常用的方法有:Delphi法、专家调查法和层次分析法。这一步往往是影响最终结果的重要原因。

(4)确定模糊综合判断矩阵。对n个指标来说,每个指标都有m个评语等级,构成n*m的矩阵R,R是一个从U到V的模糊关系矩阵。

(5)综合评判。如果有一个从U到V的模糊关系R,那么利用R就可以得到一个模糊变换

由此变换,就可以得到综合评判结果B = A·R。综合后的评判可以看作是V上的模糊向量,记为

多层级模糊综合评判

对于一些复杂的系统,如人事考核中涉及的指标较多时,需要考虑的因素很多,这时如果仍用一级模糊综合评判,则会出现两个方面的问题:一是因素过多,它们的权数分配难以确定;另一方面,即使确定了权分配,由于需要满足归一化条件,每个因素的权值都小,对这种系统,可以采用多层次模糊综合评判方法。对于人事考核而言,采用二级系统就足以解决问题了,如果实际中要划分更多的层次,那么可以用二级模糊综合评判的方法类推。

实现的思路是将每一个原指标作为一级指标,划分出二级指标,从而可以对一级指标进行评判。然后根据结果再进行一次评判。
只有一级指标时,一级指标的评价分数由其他方法给出。划分出二级指标后,由其他方法给出二级指标的评价分数。下图即为某位员工的二级指标打分情况。将一级评判的结果作为一级指标的打分。具体步骤可见程序。

待处理数据

复制以下数据并保存在mhdata.txt文件中,即上图中的二级指标打分表。

0.8  0.15    0.05    0   0
0.2 0.6 0.1 0.1 0
0.5 0.4 0.1 0   0
0.1 0.3 0.5 0.05    0.05
0.3 0.5 0.15    0.05    0
0.2 0.2 0.4 0.1 0.1
0.4 0.4 0.1 0.1 0
0.1 0.3 0.3 0.2 0.1
0.3 0.2 0.2 0.2 0.1
0.1 0.3 0.5 0.1 0
0.2 0.3 0.3 0.1 0.1
0.2 0.3 0.35    0.15    0
0.1 0.3 0.4 0.1 0.1
0.1 0.4 0.3 0.1 0.1
0.3 0.4 0.2 0.1 0
0.1 0.4 0.3 0.1 0.1
0.2 0.3 0.4 0.1 0
0.4 0.3 0.2 0.1 0

原代码

书中实现的代码在其附件的ex14_3.m文件中,其中,一级和二级指标权重都是经过其他方法确定的。

但是其运算的过程是简单的矩阵运算,在前面的步骤介绍中也是B = A·R,由矩阵的相乘得到评判结果。

clc, clear
a=load('mhdata.txt');
% 一级指标权重
w=[0.4  0.3  0.2  0.1];
% 二级指标权重
w1=[0.2  0.3  0.3  0.2];
w2=[0.3  0.2  0.1  0.2  0.2];
w3=[0.1  0.2  0.3  0.2  0.2];
w4=[0.3  0.2  0.2  0.3];
% 对子因素进行一级模糊综合评判
b(1,:)=w1*a([1:4],:);
b(2,:)=w2*a([5:9],:);
b(3,:)=w3*a([10:14],:);
b(4,:)=w4*a([15:end],:);
% 进行二级模糊综合评判,c即为评判结果
c=w*b

运行结果为“优秀、良好、一般、较差、差”五个评价等级的打分。

c =0.2880    0.3540    0.2355    0.0865    0.0360

可以看到,综合评价结果在“良好”一项分数最高,根据最大隶属度原则,可以认为对该员工的评价良好。

改进代码

对模糊综合评判中的矩阵运算,应该进行模糊运算,将矩阵相乘中的相乘变为取小,相加变为取大。以下代码中变进行了如此操作,遗憾的是由于我的水平原因,实现的方法较为粗笨,希望以后能找到更方便的方法。

clc, clear
a=load('mhdata.txt');
% 一级指标权重
w=[0.4  0.3  0.2  0.1];
% 二级指标权重,对应4个一级指标
w1=[0.2  0.3  0.3  0.2];
w2=[0.3  0.2  0.1  0.2  0.2];
w3=[0.1  0.2  0.3  0.2  0.2];
w4=[0.3  0.2  0.2  0.3];
%% 一级模糊综合评判
b1 = [];   %保存一级评判结果w0 = w1';          %指标权重应为列向量m*1
b0 = a([1:4],:);   %指标应与列向量对应m*n
% 以下为固定操作,进行模糊运算
c0 =[];  %临时结果
for i =1:max(size(b0))for j= 1:max(size(w0))c0(j,i)= min(w0(j,:),b0(j,i));endc0(j+1,i) = max(c0(:,i));
end
b1(1,:) = c0(j+1,:);w0 = w2';            %指标权重应为列向量m*1
b0 = a([5:9],:);     %指标应与列向量对应m*n
c0 =[];%临时结果
for i =1:max(size(b0))for j= 1:max(size(w0))c0(j,i)= min(w0(j,:),b0(j,i));endc0(j+1,i) = max(c0(:,i));
end
b1(2,:) = c0(j+1,:);w0 = w3';            %指标权重应为列向量m*1
b0 = a([10:14],:);   %指标应与列向量对应m*n
c0 =[];%临时结果
for i =1:max(size(b0))for j= 1:max(size(w0))c0(j,i)= min(w0(j,:),b0(j,i));endc0(j+1,i) = max(c0(:,i));
end
b1(3,:) = c0(j+1,:);w0 = w4';            %指标权重应为列向量m*1
b0 = a([15:end],:);  %指标应与列向量对应m*n
c0 =[];%临时结果
for i =1:max(size(b0))for j= 1:max(size(w0))c0(j,i)= min(w0(j,:),b0(j,i));endc0(j+1,i) = max(c0(:,i));
end
b1(4,:) = c0(j+1,:);
%% 二级模糊综合评判
w0 = w';
b0 = b1;
c0 =[];
for i =1:max(size(b0))for j= 1:max(size(w0))c0(j,i)= min(w0(j,:),b0(j,i));endc0(j+1,i) = max(c0(:,i));
endc2 = c0(j+1,:)%二级评判结果

运行结果与原代码有区别,但是大体趋势相似。对此员工的综合评价在优秀和良好之间。


c2 =0.3000    0.3000    0.2000    0.2000    0.1000

笔者的其他博客,欢迎大家阅读学习,共同进步
傻瓜攻略(一)——MATLAB主成分分析代码及结果分析实例

MATLAB中plotconfusion函数的应用

傻瓜攻略(二)——MATLAB数据挖掘之Apriori算法实现

win10系统中通过conda命令安装tensorflow(cpu版本,不用pip)

傻瓜攻略(八)——MATLAB实现模糊综合评判(两种运算方法)相关推荐

  1. matlab有模糊分析,用matlab进行模糊综合评判_模糊综合评判matlab

    用matlab进行模糊综合评判 考虑一个服装评判的问题,为此建立因素集U={u1,u2,u3,u4},其中u1表示花色,u2表示式样,u3表示耐穿程度,u4表示价格,建立评判集V={v1,v2,v3, ...

  2. 模糊推理机制 matlab,基于模糊综合评判推理机制的学生素质评价系统设计与实现...

    第22卷第2期2002年2月 文章编号:(2002)l00l-908l2-008l-03 计算机应用 ComputerAppIicationsVoI.22,No.2Feb.,2002 基于模糊综合评判 ...

  3. 单因素模糊评价matlab,用matlab进行模糊综合评判

    考虑一个服装评判的问题,为此建立因素集U={u1,u2,u3,u4},其中u1表示花色,u2表示式样,u3表示耐穿程度,u4表示价格,建立评判集V={v1,v2,v3,v4},其中v1表示很欢迎,v2 ...

  4. 用matlab进行模糊综合评判

    考虑一个服装评判的问题,为此建立因素集U={u1,u2,u3,u4},其中u1表示花色,u2表示式样,u3表示耐穿程度,u4表示价格,建立评判集V={v1,v2,v3,v4},其中v1表示很欢迎,v2 ...

  5. 傻瓜攻略(十六)——MATLAB实现txt文件复杂内容的读取

    理想情况下,txt文件中的内容是很规则的,如下图,这样的文件导入是很简单的,参见傻瓜攻略(十一)--MATLAB实现指定文件夹中txt文件的批量读取 然而现实却是,我们想要导入的txt文件中往往含有比 ...

  6. 傻瓜攻略(六)——MATLAB实现RBF神经网络

    径向基函数(Radial Basis Function,RBF)神经网络是一种传统的神经网络,于1988年首次被提出.1989年,Jackson论证了RBF神经网络对非线性连续函数的一致逼近性能. R ...

  7. 傻瓜攻略(十五)——MATLAB中简单的聚类分析方法

    本文是对聚类分析较为简单的介绍,笔者自从大二开始接触数学建模,就使用过Q型聚类和R型聚类,但是一直到研一结束,都没有一个具体的认识,浅尝辄止,不敢言通.最近参加研究生数学建模比赛,又用到了R型聚类方法 ...

  8. 傻瓜攻略(十二)——MATLAB实现偏最小二乘回归PLS

    这一定是一篇真正的傻瓜攻略,原理为根,算法为骨,应用为肉,傻瓜为皮. 本文主要介绍偏最小二乘回归的基本实现,主要内容基于司守奎<数学建模算法与应用>第11章,在其基础上进行优化. 偏最小二 ...

  9. SPM12 核磁数据预处理 傻瓜攻略

    写在最前:鉴于我自己脑子傻,请不要迷信这篇文章的方法的正确性,数据分析的方法真的很多,基于数据的差异可能在一些地方的设置或数据处理步骤都会有差异!也希望发现这篇文章哪里有错误或可以改进的大神可以评论指 ...

最新文章

  1. ZOJ 3781 最短路(想法好题目)
  2. POJ 1655 Balancing Act (求树的重心)【树形DP】(经典)
  3. 解决Winform程序在不同分辨率系统下界面混乱问题
  4. springmvc框架原理分析
  5. 进阶04 4 Collection集合类+Iterator迭代器+增强for+泛型
  6. DEP机制的保护原理
  7. spring的AOP机制
  8. Android FileOutputStream FileInputStream 读写问题记录
  9. CES2020即将完结!盘点这些脑洞产品,保证你看一眼就被种草
  10. 企业局域网无线组网方案
  11. 一行 Python 代码能实现什么丧心病狂的功能?
  12. 互联网晚报 | 1月13日 星期四 | 恒驰5首车下线;抖音电商测试快递服务“音尊达”;中国移动10086 App月底停止运营...
  13. 在Windows 记事本中快速选中大量文本的方法
  14. TJUCTF新生赛-AI安全专栏write up
  15. 正则表达式匹配任意字符(包括换行符)
  16. 移动测试工程师必须知道的10个开源框架
  17. 【Multisim仿真】有源低通滤波电路仿真
  18. 主流数据类型及其特点
  19. 服务器返回的信息无效或不可识别
  20. python基础教程(第3版) pdf,python手册中文版第四版

热门文章

  1. 局域网共享计算机指定,怎么把文件共享给工作局域网的特定人
  2. vue项目让局域网ip访问配置设置
  3. 机器翻译相关论文Topic推荐
  4. 思科3750交换机堆叠技术配置向导
  5. 20151204 流水账
  6. Non-static method ‘insert(T)‘ cannot be referenced from a static context
  7. 利用Docker极速下载OpenJDK11源码
  8. Tomcat修改访问域名
  9. 清华大学计算机系NLP实验室招聘博士后(长期有效)
  10. c语言摄氏度华氏度转换