一、应用
在模糊环境下,考虑多因素的影响,为了某种目的对一事物做出综合决策的方法,能够比较好的几句模糊的、难以量化的模型。
二、基本步骤
1、建立综合评价的因素集
这些因素通常具有不同程度的模糊性。
2、建立综合评价的评价集
评价者对评价对象可能做出的各种结果所组成的集合,通常具有不同等级。
3、确定各因素的权重
每个因素都有一个权重集
(1)有数据时,通过熵权法确定
(2)没有数据时,通过层次分析法确定
4、单因素模糊评价
(1)隶属函数的确定方法
①模糊统计法(数模基本不用)
②借助已有的客观尺度
eg.论域(家庭)->模糊集(小康家庭)->隶属度(恩格尔系数)
③指派法(套用分布作为隶属函数,主观性比较强)
(2)逐个对被评价对象从每个因素ui上进行量化
5、综合评价模型
B=A*R
6、对模糊综合评价结果定量分析
模糊综合评价的结果->被评价对象对各等级模糊子集的隶属度(一般是模糊矢量而不是一个值)
定量分析即将综合评价结果转换为综合分值,从而选出最优者
三、举例说明
下面以模糊综合评判在人事考核中的应用进行通俗易懂的说明
1、确定因素集U
U={u1,u2,u3,u4}
其中,u1 表示政治表现,u2 表示工作能力,u3 表示工作态度,u4 表示工作成绩。
2、确定评语集V
V={v1,v2,v3,v4,v5}
其中,v1表示优秀,v2表示良好,v3表示一般,v4表示较差,v5表示差。
3、确定因素集中各因素的权重A
A=[0.25,0.2,0.25,0.3](与U对应)
4、单因素模糊评价(以子因素为单位,对应评语等级,即对评语等级定量说明)
-
R1(政治表现,由群众评议打分): R1=[0.1,0.5,0.4,0,0]
-
R2(工作能力,由部门领导打分): R2=[0.2,0.5,0.2,0.1,0]
-
R3(工作态度,由部门领导打分): R3=[0.2,0.5,0.3,0,0]
-
R4(工作成绩,由单位考核组成员打分): R4=[0.2,0.6,0.2,0,0]
5、综合评价模型
->得到B矩阵:B=[0.175,0.53,0.275,0.02,0]
6、对模糊综合评价结果定量分析(综合分数转换)
->matlab代码:
% Step 1: 定义因素集和评语集
U = {'政治表现', '工作能力', '工作态度', '工作成绩'};
V = {'优秀', '良好', '一般', '较差', '差'};
% Step 2: 定义权重向量
A = [0.25, 0.2, 0.25, 0.3]; % 各因素的权重
% Step 3: 构建模糊评判矩阵
R1 = [0.1, 0.5, 0.4, 0, 0]; % 政治表现
R2 = [0.2, 0.5, 0.2, 0.1, 0]; % 工作能力
R3 = [0.2, 0.5, 0.3, 0, 0]; % 工作态度
R4 = [0.2, 0.6, 0.2, 0, 0]; % 工作成绩
% 组合成一个矩阵
R = [R1; R2; R3; R4];
% Step 4: 计算模糊综合评判结果
B = A * R;
% Step 5: 综合分数转换
P = [5, 4, 3, 2, 1]; % 评判等级权向量
S = B * P';
% 显示最终结果
[~, maxIndex] = max(B);
finalGrade = V{maxIndex};
disp(['综合评判结果为:', finalGrade]);
disp(['综合分数为:', num2str(S)]);
% 可视化结果
figure;
bar(B);
set(gca, 'XTickLabel', V);
xlabel('评语等级');
ylabel('综合隶属度');
title('综合评判结果');
四、进阶版->多层次模糊综合评价
顾名思义,即在模糊综合评价的基础上,将评价问题分解为多个层次,每个层次进行模糊综合评价,然后逐层汇总。(即AHP和模糊综合评价的结合)
1、确定评价体系
①因素集
②评语集
V={v1=优秀,v2=良好,v3=一般,v4=较差,v5=差}
③权重集
一级指标权重:A=[0.25,0.2,0.25,0.3]
2、三级模糊综合评判(各子因素评判)
3、二级模糊综合评判
4、一级模糊综合评判(最终评判)
-->matlab实现
% Step 1: 定义因素集和评语集
U = {'政治表现', '工作能力', '工作态度', '工作成绩'};
V = {'优秀', '良好', '一般', '较差', '差'};
% Step 2: 定义权重向量
A = [0.25, 0.2, 0.25, 0.3]; % 一级指标权重
% 定义模糊评判矩阵
R1 = [0.1, 0.5, 0.4, 0, 0]; % 政治表现
R2 = [0.2, 0.5, 0.2, 0.1, 0]; % 工作能力
R3 = [0.2, 0.5, 0.3, 0, 0]; % 工作态度
R4 = [0.2, 0.6, 0.2, 0, 0]; % 工作成绩
% 将模糊评判矩阵组合成一个矩阵
R = [R1; R2; R3; R4];
% Step 3: 二级模糊综合评判
% 计算模糊综合评判结果
B1 = A(1) * R1;
B2 = A(2) * R2;
B3 = A(3) * R3;
B4 = A(4) * R4;
% 组合评判结果
R_combined = [B1; B2; B3; B4];
% Step 4: 一级模糊综合评判
% 计算综合评判结果
B = A * R_combined;
% Step 5: 综合分数转换
P = [5, 4, 3, 2, 1]; % 评判等级权向量
S = B * P';
% 显示最终结果
disp(['综合评判结果为:良好,综合分数为:', num2str(S)]);
% 可视化结果
figure;
subplot(1,2,1);
plot(1:5, B1, '-o', 'DisplayName', '政治表现'); hold on;
plot(1:5, B2, '-o', 'DisplayName', '工作能力');
plot(1:5, B3, '-o', 'DisplayName', '工作态度');
plot(1:5, B4, '-o', 'DisplayName', '工作成绩');
xlabel('评语等级');
ylabel('隶属度');
title('各子因素模糊综合评判结果');
legend;
subplot(1,2,2);
bar(B);
set(gca, 'XTickLabel', V);
xlabel('评语等级');
ylabel('综合隶属度');
title('综合评判结果');
五、层次分析法or(多层次)模糊综合评级如何选择
-
层次结构的复杂性:
- 如果问题具有明确的层次结构,且各层次之间存在明显的隶属关系,考虑使用 层次分析法(AHP) 或 多层次模糊综合评价。
- 如果问题层次结构不明显,仅涉及单层次的多因素评价,使用 模糊综合评价法。
-
信息的模糊性和不确定性:
- 如果评价信息具有明显的模糊性和不确定性,且需要处理多个评价等级,考虑使用 模糊综合评价法 或 多层次模糊综合评价。
- 如果信息相对明确,各因素之间可以通过成对比较确定相对重要性,使用 层次分析法(AHP)。
-
数据的复杂性:
- 如果评价涉及多个层次和复杂的因素关系,使用 多层次模糊综合评价。
- 如果评价相对简单,层次结构不复杂,使用 模糊综合评价法。
参考资料
1、层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布) - 是不过三 - 博客园 (cnblogs.com)