给我一个层次分析法python代码的例子
时间: 2024-10-03 15:00:59 浏览: 40
层次分析法(Analytic Hierarchy Process, AHP)是一种决策分析工具,通常用于解决复杂问题中的权重分配问题。在Python中,我们可以使用`pandas`库处理数据,以及一些第三方库如`apyhtools`来进行AHP计算。以下是一个简单的例子:
```python
from apyhtools import AHP
import pandas as pd
# 创建优先级矩阵
criteria = ['性能', '价格', '可靠性']
alternatives = ['方案A', '方案B', '方案C']
priority_matrix = {
criteria[0]: [9, 6, 5],
criteria[1]: [7, 9, 8],
criteria[2]: [5, 4, 9]
} # 对每个标准给出相对重要性评分,最高为9
# 确定一致性比率 CR
ahp = AHP(priority_matrix)
cr, consistency_index = ahp.comparability_ratio()
if cr > 0.1 or consistency_index > 0.1:
print("一致性检验失败,CR:", cr, ", CI:", consistency_index)
# 计算权重向量
weights = ahp.scores()
print(f"各方案相对于所有标准的权重:\n{pd.DataFrame(weights)}")
# 使用权重对方案排序
sorted_alternatives = sorted(weights.items(), key=lambda x: x[1], reverse=True)
print("\n按照权重排序后的方案:", sorted_alternatives)
```
在这个例子中,我们首先定义了评估标准(比如性能、价格和可靠性),然后为每个标准分配了一个相对的重要性分数。接着,我们进行了AHP的计算,包括检查一致性,并计算出每个方案的权重。最后,我们根据权重对方案进行了排序。
阅读全文