熵权法python代码
时间: 2023-06-29 12:14:32 浏览: 68
熵权法python
3星 · 编辑精心推荐
以下是使用熵权法进行多指标决策的 Python 代码示例:
```python
import numpy as np
# 输入决策矩阵,每一行代表一个方案,每一列代表一个指标
# 决策矩阵中的数据需要标准化处理,即将每一列的数据映射到0-1之间
decision_matrix = np.array([[0.8, 0.6, 0.7],
[0.6, 0.7, 0.9],
[0.7, 0.8, 0.6]])
# 计算每一列的熵值
column_entropy = []
for j in range(decision_matrix.shape[1]):
p = decision_matrix[:, j] / np.sum(decision_matrix[:, j])
column_entropy.append(-np.sum(p * np.log2(p)))
# 计算每一列的权重
column_weight = []
for j in range(decision_matrix.shape[1]):
column_weight.append((1 - column_entropy[j]) / np.sum(1 - column_entropy))
# 计算每个方案的综合得分
score = np.sum(decision_matrix * column_weight, axis=1)
# 输出每个方案的得分和权重
for i in range(decision_matrix.shape[0]):
print("方案{}的得分为{},权重为{}".format(i + 1, score[i], column_weight))
```
在这个示例中,我们使用了 NumPy 库来处理矩阵计算。首先,我们输入了一个已经标准化处理的决策矩阵。然后,我们计算了每一列的熵值,并根据熵值计算了每一列的权重。最后,我们将每个方案的得分计算为决策矩阵乘以权重的加权和,输出了每个方案的得分和权重。
阅读全文