python层次分析法运用不同方法确定权重代码
时间: 2023-08-06 18:10:43 浏览: 141
层次分析法(AHP)是一种多准则决策方法,可用于确定不同因素的相对权重。在Python中,有几种方法可以使用AHP来确定权重,其中包括:
1. pyanp:这是一个可以使用Python进行AHP分析的库。它提供了一组类和函数,可以用于创建层次结构、计算权重并进行一致性检查。以下是使用pyanp库计算权重的示例代码:
```python
import pyanp
# 创建层次结构
h = pyanp.Hierarchy("Root")
h.add_level(["Criteria 1", "Criteria 2", "Criteria 3"])
# 添加子层次结构
h.add_level(["Subcriteria 1.1", "Subcriteria 1.2"], parent="Criteria 1")
h.add_level(["Subcriteria 2.1", "Subcriteria 2.2"], parent="Criteria 2")
h.add_level(["Subcriteria 3.1", "Subcriteria 3.2"], parent="Criteria 3")
# 添加两个矩阵
h.add_matrix([1, 3, 5, 1/3, 1, 3, 1/5, 1/3, 1], "Criteria 1")
h.add_matrix([1, 1/5, 1/3, 5, 1, 3, 3, 1/3, 1], "Criteria 2")
h.add_matrix([1, 1/3, 1/5, 3, 5, 1, 5, 3, 1], "Criteria 3")
# 计算权重
weights = h.get_eigen_vector()
print(weights)
```
2. ahpy:这是另一个用于AHP分析的Python库。与pyanp不同,ahpy库提供了一种更为简单的方式来定义层次结构,并且可以使用不同的一致性指标来检查层次结构的一致性。以下是使用ahpy库计算权重的示例代码:
```python
import ahpy
# 创建层次结构
h = ahpy.Hierarchy("Root")
h.add_children(["Criteria 1", "Criteria 2", "Criteria 3"])
# 添加子层次结构
h["Criteria 1"].add_children(["Subcriteria 1.1", "Subcriteria 1.2"])
h["Criteria 2"].add_children(["Subcriteria 2.1", "Subcriteria 2.2"])
h["Criteria 3"].add_children(["Subcriteria 3.1", "Subcriteria 3.2"])
# 添加两个矩阵
h["Criteria 1"]["Subcriteria 1.1"].add_comparisons({"Subcriteria 1.1": 1, "Subcriteria 1.2": 3})
h["Criteria 1"]["Subcriteria 1.2"].add_comparisons({"Subcriteria 1.1": 1/3, "Subcriteria 1.2": 1})
h["Criteria 2"]["Subcriteria 2.1"].add_comparisons({"Subcriteria 2.1": 1, "Subcriteria 2.2": 1/5})
h["Criteria 2"]["Subcriteria 2.2"].add_comparisons({"Subcriteria 2.1": 5, "Subcriteria 2.2": 1})
h["Criteria 3"]["Subcriteria 3.1"].add_comparisons({"Subcriteria 3.1": 1, "Subcriteria 3.2": 3})
h["Criteria 3"]["Subcriteria 3.2"].add_comparisons({"Subcriteria 3.1": 1/3, "Subcriteria 3.2": 1})
# 计算权重
weights = h.get_weights()
print(weights)
```
这些示例代码只是展示了如何使用AHP来确定权重,实际中可能需要更多的步骤和数据处理。
阅读全文