python模糊综合评价法
时间: 2023-11-01 10:00:56 浏览: 270
模糊综合评价法是一种评估模糊、边界不清的因素的方法。该方法通过将模糊的因素定量化,使用模糊关系合成原理进行评价。在模糊综合评价法中,根据准则权重和因素权重,将评语(如优秀、良好、一般、较差、非常差)与对应的权重相乘,得到单因素的评价结果。然后将各个单因素的评价结果进行加权求和,得到最终的综合评价结果。
可以使用Python实现模糊综合评价法。首先,需要提供准则权重和因素权重,然后将评价数据输入到程序中。程序将根据准则权重和因素权重计算出各个单因素的评价结果,并将其加权求和得到最终的综合评价结果。
以下是一个用Python实现模糊综合评价法的示例代码:
```python
import pandas as pd
import numpy as np
# 定义模糊综合评价函数
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, :].values
v2 = df.iloc[2:5, :].values
v3 = df.iloc[5:9, :].values
v4 = df.iloc[9:12, :].values
v5 = df.iloc[12:16, :].values
vv = [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))
# 获取专家评价数据
def get_DataFromExcel():
df = pd.read_excel('FCE.xlsx')
return df
# 示例使用
criteria = [0.4, 0.3, 0.2, 0.1]
eigen = [[0.8, 0.2], [0.4, 0.6, 0.9], [0.5, 0.3, 0.2, 0.1], [0.7, 0.3], [0.6, 0.4, 0.2]]
fuzzy_eval(criteria, eigen)
```
希望这个示例能帮助你理解和应用模糊综合评价法。
阅读全文