熵权TOPSIS的Python代码
时间: 2023-11-05 22:51:12 浏览: 46
以下是一个用于计算熵权TOPSIS(Technique for Order of Preference by Similarity to Ideal Solution)的Python代码示例:
```python
import numpy as np
def topsis(matrix, weights):
# 标准化矩阵
norm_matrix = matrix / np.sqrt(np.sum(matrix**2, axis=0))
# 计算正理想解和负理想解
pos_ideal = np.max(norm_matrix, axis=1)
neg_ideal = np.min(norm_matrix, axis=1)
# 计算距离
pos_distance = np.sqrt(np.sum((norm_matrix - pos_ideal[:, np.newaxis])**2, axis=1))
neg_distance = np.sqrt(np.sum((norm_matrix - neg_ideal[:, np.newaxis])**2, axis=1))
# 计算相对接近度
closeness = neg_distance / (pos_distance + neg_distance)
# 计算权重熵
entropy = -np.sum(weights * np.log(weights), axis=0)
# 计算熵权TOPSIS得分
topsis_score = closeness * entropy
return topsis_score
# 示例使用
matrix = np.array([[3, 4, 5], [1, 2, 3], [4, 5, 6], [2, 3, 4]])
weights = np.array([0.4, 0.3, 0.3])
topsis_score = topsis(matrix, weights)
print("TOPSIS得分:", topsis_score)
```
上述代码中,`matrix` 是一个包含多个评价对象和评价指标的二维矩阵,每一行表示一个评价对象,每一列表示一个评价指标。`weights` 是一个一维数组,表示各个评价指标的权重。函数 `topsis` 会返回每个评价对象的TOPSIS得分。
请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体情况进行调整和优化。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)