请利用Python对三项正向指标首先计算熵值,然后利用熵值作权重利用topsis法实现综合评价
时间: 2023-08-03 20:03:45 浏览: 109
熵权-TOPSIS综合评价MATLAB程序.txt
3星 · 编辑精心推荐
好的,这里提供一个Python实现熵值法+topsis法进行综合评价的示例代码,其中首先计算熵值,再利用熵值作权重进行综合评价。
```
import numpy as np
import pandas as pd
# 创建数据表,data为指标矩阵,index为各项指标名称,columns为各项评价对象
data = pd.DataFrame([[5, 7, 8], [4, 6, 8], [6, 7, 7], [5, 6, 9]], index=['指标1', '指标2', '指标3', '指标4'], columns=['评价对象1', '评价对象2', '评价对象3'])
# 计算每项指标的熵值
e = data * np.log(data)
# 计算熵权
e_weight = -(1 / np.log(len(data))) * e.sum()
# 计算加权标准化矩阵
data_weighted = (data * e_weight).div(e_weight.sum())
# 计算正理想解和负理想解
ideal_best = np.max(data_weighted, axis=0)
ideal_worst = np.min(data_weighted, axis=0)
# 计算距离
d_best = np.sqrt(((data_weighted - ideal_best) ** 2).sum(axis=1))
d_worst = np.sqrt(((data_weighted - ideal_worst) ** 2).sum(axis=1))
# 计算相对接近度
closeness = d_worst / (d_best + d_worst)
# 输出各项评价对象的综合评价得分
print(closeness)
```
在上述代码中,我们首先创建了一个指标矩阵,然后利用熵值法计算出了每个指标的熵权。接着,我们使用这些熵权对原始指标矩阵进行加权处理。接着,我们计算了正理想解和负理想解,并使用topsis法计算出了各项评价对象的综合评价得分。最后,我们输出了各项评价对象的综合评价得分。
阅读全文