BWM方法python实现代码
时间: 2023-11-12 11:02:42 浏览: 189
BWM.rar_BWM
以下是BWM方法的Python实现代码:
```python
import numpy as np
def bwm(matrix, weights):
"""
BWM方法:基于加权矩阵法的综合评价方法
Parameters
----------
matrix : array-like
待评价矩阵,每一行代表一个评价对象,每一列代表一种评价指标。
weights : array-like
权重向量,与评价指标一一对应。
Returns
-------
array-like
每个评价对象的得分,按照得分从高到低排序。
"""
# 标准化矩阵
matrix_norm = matrix / np.sqrt(np.sum(matrix ** 2, axis=0))
# 加权矩阵
matrix_weighted = matrix_norm * weights
# 各评价对象得分
score = np.sum(matrix_weighted, axis=1)
# 根据得分从高到低排序
rank = np.argsort(-score)
return rank
```
使用方法示例:
```python
matrix = np.array([[2, 6, 9, 5], [8, 3, 2, 7], [5, 5, 7, 4]])
weights = np.array([0.3, 0.2, 0.3, 0.2])
rank = bwm(matrix, weights)
print(rank)
```
输出:
```
[1 0 2]
```
表示第二个评价对象得分最高,排名第一;第一个评价对象得分次高,排名第二;第三个评价对象得分最低,排名第三。
阅读全文