写一段最简单的层次分析方法的程序代码
时间: 2024-12-08 17:13:40 浏览: 4
简单优先分析法演示系统-C/C++程序设计、Qt图形化界面
层次分析法(Hierarchical Analysis,简称HIA)是一种定性和定量结合的风险评估方法,通常用于决策分析。下面是一个非常基础的Python示例,它展示了如何使用层次分析法来对两个因素(A和B)进行比较:
```python
import pandas as pd
# 定义判断矩阵(每行代表一个元素相对于另一个元素的重要性)
criteria_matrix = pd.DataFrame({
'A': [0.5, 0.3, 0.2],
'B': [0.3, 0.6, 0.1]
})
# 确保矩阵是对角线元素为1,其余元素在0到1之间
criteria_matrix = criteria_matrix.apply(lambda x: x / x.sum(), axis=1)
def normalize(matrix):
min_values = matrix.min(axis=0)
max_values = matrix.max(axis=0)
return (matrix - min_values) / (max_values - min_values)
# 归一化判断矩阵
normalized_criteria_matrix = normalize(criteria_matrix)
# 计算特征向量和一致性比率
eigenvalues, eigenvectors = np.linalg.eig(normalized_criteria_matrix)
consistency_index = np.max(eigenvalues) / (len(criteria_matrix.columns) - 1)
print("一致性比率:", consistency_index)
# 取最大特征值对应的向量作为权重
weights = eigenvectors[:, eigenvalues.argmax()]
print("权重分配:", weights)
```
这个例子假设你已经导入了numpy库,并且进行了适当的初始化。注意实际应用中,你需要根据具体的层次结构和评价标准构建更大的判断矩阵。
阅读全文