模糊综合评判法

一、综合评价法

综合评价法 { 主观赋权评价法(定性), 例如层次分析法、模糊综合判定法 客观赋权评价法 ( 相关关系、各项指标的变异系数 ) , 例如灰色关联度法, T O P S I S 法、主成分分析法等 综合评价法 \begin{cases} 主观赋权评价法(定性),\\ 例如层次分析法、模糊综合判定法\\ \\ \\ \\ 客观赋权评价法(相关关系、各项指标的变异系数),\\ 例如灰色关联度法,TOPSIS法、主成分分析法等 \end{cases} 综合评价法 主观赋权评价法(定性),例如层次分析法、模糊综合判定法客观赋权评价法(相关关系、各项指标的变异系数)例如灰色关联度法,TOPSIS法、主成分分析法等

二、模糊综合评判法

(一)模糊综合评价及原理

1.模糊综合评价就是以模糊数学为基础,应用模糊关系合成的原理,将一些边界不清、不易定量的因素定量化,从多个因素对被评价事务隶属等级状况进行综合性评价的一种方法。

2.基本原理:
(1)确定被评判对象的因素(指标)集和评价(等级)集;
(2)确定各个因素的权重及它们的隶属度向量,获得模糊评判矩阵;
(3)把模糊评判矩阵与因素的权向量进行模糊运算并进行归一化,得到模糊评价综合结果。

(二)模型和步骤

1.确定评价指标和评价等级

在这里插入图片描述在这里插入图片描述
2.构造评价矩阵和确定权重

在这里插入图片描述

3.确定指标权重

  • 评价指标集中的各个指标在“评价目标”中有不同的地位和作用,即个评价指标在综合评价中占有不同的比重。
  • 拟引入U上的一个模糊子集A,称为权重或权数分配集, A = ( a 1 , a 2 , . . . a m ) A=(a_1,a_2,...a_m) A=(a1,a2,...am),其中 a i > 0 , 且 ∑ a i = 1 a_i>0,且\sum a_i=1 ai>0,ai=1

4.进行单指标模糊评判,并求得评判矩阵

在这里插入图片描述
5.确定指标权重

假设男顾客侧重于舒适度和耐用度,而不太讲究花色和样式。
对各因素的权重可确定如下:
A = ( 0.10 , 0.10 , 015 , 0.30 , 0.35 ) A=(0.10, 0.10, 015, 0.30, 0.35) A=(0.10,0.10,015,0.30,0.35)

(三) 进行模糊合成和作出决策

1.模糊变化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
2.决策

在这里插入图片描述

三、代码

#算子1
def min_max_operator(A, R):
    '''
    利用最值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(min(A[row], R[row, column]))
        B[0, column] = max(list)
    return B

#算子2
def mul_max_operator(A, R):
    '''
    利用乘法最大值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(A[row] * R[row, column])
        B[0, column] = max(list)
    return B
#算子3
def min_mymin_operator(A, R):
    '''
    利用最小值最小值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(min(A[row], R[row, column]))
        B[0, column] = mymin(list)
    return B
 
 def mymin(list):
    for index in range(1, len(list)):
        if index == 1:
            temp = min(1, list[0]+list[1])
        else:
            temp = min(1, temp+list[index])
    return temp
#算子4
def mul_mymin_operator(A, R):
    '''
    利用乘法最小值算子合成矩阵
    :param A:评判因素权向量 A = (a1,a2 ,L,an )
    :param R:模糊关系矩阵 R
    :return:
    '''
    B = np.zeros((1, R.shape[1]))
    for column in range(0, R.shape[1]):
        list = []
        for row in range(0, R.shape[0]):
            list.append(A[row] * R[row, column])
        B[0, column] = mymin(list)
    return B


  • 28
    点赞
  • 223
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
模糊综合评判(Fuzzy Comprehensive Evaluation Method)是一种基于模糊逻辑的评价方,常用于多指标的综合评价和决策分析。在Python中可以使用模糊逻辑库(如scikit-fuzzy)来实现这一方。 首先,我们需要引入相应的库,并创建一个空模糊控制系统: ```python import numpy as np import skfuzzy as fuzz # 创建模糊控制系统 ctrl = fuzz.ControlSystem() ``` 接下来,我们需要定义输入和输出的模糊集合以及它们之间的模糊规则。例如,假设我们要评价一个商品的好坏,我们可以定义三个输入变量:价格、质量和口碑,并定义一个输出变量:评价值。 ```python # 定义输入和输出的模糊集合 price = fuzz.Antecedent(np.arange(0, 11, 1), 'price') quality = fuzz.Antecedent(np.arange(0, 11, 1), 'quality') reputation = fuzz.Antecedent(np.arange(0, 11, 1), 'reputation') evaluation = fuzz.Consequent(np.arange(0, 11, 1), 'evaluation') # 定义模糊规则 rule1 = fuzz.Rule(price['poor'] | quality['poor'] | reputation['poor'], evaluation['poor']) rule2 = fuzz.Rule(quality['average'] | reputation['average'], evaluation['average']) rule3 = fuzz.Rule(price['good'] | quality['good'] | reputation['good'], evaluation['good']) # 添加规则到模糊控制系统 ctrl.addrules([rule1, rule2, rule3]) ``` 然后,我们可以定义输入的模糊集合和模糊控制系统: ```python # 定义输入模糊集合的隶属度函数 price.automf(names=['poor', 'average', 'good']) quality.automf(names=['poor', 'average', 'good']) reputation.automf(names=['poor', 'average', 'good']) # 定义输出模糊集合的隶属度函数 evaluation.automf(names=['poor', 'average', 'good']) # 创建模糊控制系统 fuzzy_ctrl = fuzz.ControlSystemSimulation(ctrl) ``` 最后,我们可以输入具体的数值,计算出评价值: ```python # 输入具体数值 fuzzy_ctrl.input['price'] = 5.5 fuzzy_ctrl.input['quality'] = 6.8 fuzzy_ctrl.input['reputation'] = 7.2 # 运行模糊控制系统 fuzzy_ctrl.compute() # 获取评价值 evaluation_value = fuzzy_ctrl.output['evaluation'] print("评价值:", evaluation_value) ``` 这就是用Python实现模糊综合评判的基本步骤。通过定义输入的模糊集合、模糊规则和输出的模糊集合,以及输入具体数值并运行模糊控制系统,我们可以得到一个评价值,用于综合评价和决策分析。当然,具体的业务场景和评价指标需要根据实际情况进行设计和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值