模糊综合评价模型建立
一、整体流程

二、代码实现(含大量注释)
#程序文件ex14_4.py
import numpy as np
a = np.loadtxt('data14_4.txt')
# 使用定义匿名函数的形式来定义各个评价指标的隶属函数
f1 = lambda x: x/8800
f2 = lambda x: 1-x/8000
f3 = lambda x: (x<=5.5)+(8-x)/(8-5.5)*((x>5.5) & (x<8))
f4 = lambda x: 1-x/200
f5 = lambda x: (x-50)/(1500-50)
R = []
# len(a)返回列表a的长度,range(len(a))生成一个从0到len(a)-1的整数序列,
# i在每次循环迭代中依次取这些值。
for i in range(len(a)):
# 'f'是函数名的前缀。
# str(i+1)将循环变量i加1后转换为字符串,因为索引通常从0开始,而这里假设函数名是从f1开始的。
# '(a['+str(i)+'])'表示函数的参数,即列表a中索引为i的元素。
s = 'f'+str(i+1)+'(a['+str(i)+'])'; R.append(eval(s))
# np.array() 函数的作用是将输入 R 转换成一个NumPy数组。
R = np.array(R)
w = np.array([0.25, 0.2, 0.2, 0.1, 0.25])
# np.array() 函数的作用是将输入 R 转换成一个NumPy数组。
# (这是Python 3.5及以上版本中引入的矩阵乘法运算符)
B = w @ R #计算综合评价值
print('评价值:', np.round(B,4))
三、数据及结果分析
3.1数据
4700 6700 5900 8800 7600
5000 5500 5300 6800 6000
4 6.1 5.5 7 6.8
30 50 40 200 160
1500 700 1000 50 100
3.2结果
评价值: [0.7435 0.5919 0.6789 0.36 0.3905]
得到的评价值越高代表评价效果越好。