尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Python ahp-gauss 包完全指南与实战案例

Python ahp-gauss 包完全指南与实战案例 1. 引言ahp-gauss 是一个基于 Python 的层次分析法Analytic Hierarchy ProcessAHP实现库由 Gauss 团队开发维护。它通过高斯消元法求解判断矩阵的特征向量从而计算各评价指标的权重广泛应用于多准则决策分析、供应商评估、项目优先级排序等场景。本文将从功能特性、安装方法、核心语法与参数、9 个实际应用案例以及常见错误与使用注意事项五个方面系统介绍 ahp-gauss 包的使用方法。2. 功能概述ahp-gauss 包的核心功能围绕层次分析法的完整流程展开主要包含以下能力判断矩阵构建支持从二维数组或列表直接构造判断矩阵并自动校验矩阵的合法性。权重计算采用高斯消元法求解判断矩阵的最大特征值对应的特征向量归一化后得到各指标的权重。一致性检验自动计算一致性指标 CI、随机一致性指标 RI 和一致性比率 CR并给出是否通过检验的结论。层次总排序支持多层级结构的权重合成计算方案层相对于目标层的综合权重。结果可视化提供权重柱状图、雷达图等可视化函数便于直观展示决策结果。灵敏度分析支持对判断矩阵中的关键元素进行扰动分析观察权重变化趋势。3. 安装方法ahp-gauss 包已发布到 PyPI可以通过 pip 直接安装。推荐使用虚拟环境进行安装避免污染全局 Python 环境。# 创建并激活虚拟环境可选但推荐 python -m venv ahp_env source ahp_env/bin/activate # Linux/macOS # ahp_env\Scripts\activate # Windows 安装 ahp-gauss pip install ahp-gauss 如需安装最新开发版可从 GitHub 安装 pip install githttps://github.com/gauss/ahp-gauss.git安装完成后可以通过以下命令验证是否安装成功python -c import ahp_gauss; print(ahp_gauss.__version__)4. 核心语法与参数ahp-gauss 包的主要接口包括 AHP 类、判断矩阵类以及若干辅助函数。下面介绍最常用的核心 API。4.1 AHP 类AHP 类是进行层次分析的主入口其构造函数和主要方法如下from ahp_gauss import AHP 构造函数参数 criteria: 准则层判断矩阵二维列表或 numpy 数组 alternatives: 方案层判断矩阵列表每个元素对应一个准则下的判断矩阵 criteria_names: 准则名称列表可选 alternative_names: 方案名称列表可选 ahp AHP( criteria[[1, 3, 5], [1/3, 1, 2], [1/5, 1/2, 1]], alternatives[ [[1, 2, 3], [1/2, 1, 2], [1/3, 1/2, 1]], [[1, 1/3, 1/5], [3, 1, 1/2], [5, 2, 1]], [[1, 2, 1/3], [1/2, 1, 1/4], [3, 4, 1]] ], criteria_names[价格, 质量, 服务], alternative_names[供应商A, 供应商B, 供应商C] ) 计算权重 ahp.compute_weights() 获取准则层权重 criteria_weights ahp.criteria_weights 获取方案层综合权重 final_weights ahp.final_weights 一致性检验结果 consistency ahp.consistency_report4.2 判断矩阵类对于单层决策可以直接使用 JudgmentMatrix 类from ahp_gauss import JudgmentMatrix 创建判断矩阵 matrix JudgmentMatrix( matrix[[1, 3, 5], [1/3, 1, 2], [1/5, 1/2, 1]], names[指标1, 指标2, 指标3] ) 计算权重 weights matrix.compute_weights() 一致性检验 cr matrix.consistency_ratio print(f一致性比率 CR {cr:.4f})4.3 主要参数说明参数名类型说明criterialist / ndarray准则层判断矩阵元素 a[i][j] 表示准则 i 相对于准则 j 的重要程度alternativeslist方案层判断矩阵列表每个矩阵对应一个准则下的方案两两比较criteria_nameslist准则名称列表用于结果展示alternative_nameslist方案名称列表用于结果展示random_indexdict随机一致性指标 RI 表默认使用 Saaty 标准值可自定义precisionint计算精度默认 1e-6用于判断矩阵元素是否满足互反性5. 实际应用案例下面通过 9 个实际案例展示 ahp-gauss 包在不同场景下的具体应用。案例 1供应商选择某制造企业需要从三家供应商中选择最优合作伙伴评价准则包括价格、质量、交货期和服务四个维度。from ahp_gauss import AHP 准则层判断矩阵 criteria [ [1, 1/3, 1/5, 1/4], [3, 1, 1/3, 1/2], [5, 3, 1, 2], [4, 2, 1/2, 1] ] 各准则下的方案判断矩阵 alternatives [ # 价格 [[1, 2, 3], [1/2, 1, 2], [1/3, 1/2, 1]], # 质量 [[1, 1/3, 1/2], [3, 1, 2], [2, 1/2, 1]], # 交货期 [[1, 2, 1/2], [1/2, 1, 1/3], [2, 3, 1]], # 服务 [[1, 3, 2], [1/3, 1, 1/2], [1/2, 2, 1]] ] ahp AHP( criteriacriteria, alternativesalternatives, criteria_names[价格, 质量, 交货期, 服务], alternative_names[供应商A, 供应商B, 供应商C] ) ahp.compute_weights() print(准则层权重, ahp.criteria_weights) print(方案综合权重, ahp.final_weights) print(一致性报告, ahp.consistency_report)案例 2项目优先级排序一家软件公司需要从五个候选项目中挑选三个优先实施评价准则包括投资回报率、技术风险、市场前景和资源需求。from ahp_gauss import AHP criteria [ [1, 3, 2, 4], [1/3, 1, 1/2, 2], [1/2, 2, 1, 3], [1/4, 1/2, 1/3, 1] ] 五个项目在四个准则下的判断矩阵 alternatives [ [[1, 2, 3, 4, 5], [1/2, 1, 2, 3, 4], [1/3, 1/2, 1, 2, 3], [1/4, 1/3, 1/2, 1, 2], [1/5, 1/4, 1/3, 1/2, 1]], [[1, 1/2, 2, 3, 4], [2, 1, 3, 4, 5], [1/2, 1/3, 1, 2, 3], [1/3, 1/4, 1/2, 1, 2], [1/4, 1/5, 1/3, 1/2, 1]], [[1, 3, 2, 1/2, 4], [1/3, 1, 1/2, 1/4, 2], [1/2, 2, 1, 1/3, 3], [2, 4, 3, 1, 5], [1/4, 1/2, 1/3, 1/5, 1]], [[1, 2, 1/2, 3, 4], [1/2, 1, 1/3, 2, 3], [2, 3, 1, 4, 5], [1/3, 1/2, 1/4, 1, 2], [1/4, 1/3, 1/5, 1/2, 1]] ] ahp AHP( criteriacriteria, alternativesalternatives, criteria_names[投资回报率, 技术风险, 市场前景, 资源需求], alternative_names[项目P1, 项目P2, 项目P3, 项目P4, 项目P5] ) ahp.compute_weights() 按权重排序取前三个项目 sorted_projects sorted( zip(ahp.alternative_names, ahp.final_weights), keylambda x: x[1], reverseTrue ) print(项目优先级排序) for name, weight in sorted_projects: print(f {name}: {weight:.4f})案例 3员工绩效评估人力资源部门使用 ahp-gauss 对员工进行综合绩效评估评价维度包括工作业绩、团队协作、创新能力、学习成长和纪律性。from ahp_gauss import AHP criteria [ [1, 3, 4, 5, 2], [1/3, 1, 2, 3, 1/2], [1/4, 1/2, 1, 2, 1/3], [1/5, 1/3, 1/2, 1, 1/4], [1/2, 2, 3, 4, 1] ] 四位员工的判断矩阵 alternatives [ [[1, 2, 3, 4], [1/2, 1, 2, 3], [1/3, 1/2, 1, 2], [1/4, 1/3, 1/2, 1]], [[1, 1/2, 2, 3], [2, 1, 3, 4], [1/2, 1/3, 1, 2], [1/3, 1/4, 1/2, 1]], [[1, 3, 2, 1/2], [1/3, 1, 1/2, 1/4], [1/2, 2, 1, 1/3], [2, 4, 3, 1]], [[1, 2, 1/2, 3], [1/2, 1, 1/3, 2], [2, 3, 1, 4], [1/3, 1/2, 1/4, 1]], [[1, 1/3, 2, 1/2], [3, 1, 4, 2], [1/2, 1/4, 1, 1/3], [2, 1/2, 3, 1]] ] ahp AHP( criteriacriteria, alternativesalternatives, criteria_names[工作业绩, 团队协作, 创新能力, 学习成长, 纪律性], alternative_names[员工甲, 员工乙, 员工丙, 员工丁] ) ahp.compute_weights() print(员工综合绩效排名) for name, weight in sorted(zip(ahp.alternative_names, ahp.final_weights), keylambda x: x[1], reverseTrue): print(f {name}: {weight:.4f})案例 4旅游目的地选择一个家庭计划假期旅行需要在三个候选目的地中做出选择考虑因素包括费用、景点丰富度、交通便利性和安全性。from ahp_gauss import AHP criteria [ [1, 1/3, 1/2, 1/4], [3, 1, 2, 1/2], [2, 1/2, 1, 1/3], [4, 2, 3, 1] ] alternatives [ [[1, 2, 3], [1/2, 1, 2], [1/3, 1/2, 1]], [[1, 1/2, 1/3], [2, 1, 1/2], [3, 2, 1]], [[1, 3, 2], [1/3, 1, 1/2], [1/2, 2, 1]], [[1, 2, 1/2], [1/2, 1, 1/3], [2, 3, 1]] ] ahp AHP( criteriacriteria, alternativesalternatives, criteria_names[费用, 景点丰富度, 交通便利性, 安全性], alternative_names[三亚, 丽江, 青岛] ) ahp.compute_weights() best max(zip(ahp.alternative_names, ahp.final_weights), keylambda x: x[1]) print(f推荐旅游目的地{best[0]}综合得分 {best[1]:.4f})案例 5软件选型决策某企业需要选择一款项目管理软件从功能完备性、易用性、扩展性、成本和技术支持五个维度进行评估。from ahp_gauss import AHP criteria [ [1, 3, 2, 4, 5], [1/3, 1, 1/2, 2, 3], [1/2, 2, 1, 3, 4], [1/4, 1/2, 1/3, 1, 2], [1/5, 1/3, 1/4, 1/2, 1] ] alternatives [ [[1, 2, 3], [1/2, 1, 2], [1/3, 1/2, 1]], [[1, 1/2, 2], [2, 1, 3], [1/2, 1/3, 1]], [[1, 3, 2], [1/3, 1, 1/2], [1/2, 2, 1]], [[1, 2, 1/2], [1/2, 1, 1/3], [2, 3, 1]], [[1, 1/3, 1/2], [3, 1, 2], [2, 1/2, 1]] ] ahp AHP( criteriacriteria, alternativesalternatives, criteria_names[功能完备性, 易用性, 扩展性, 成本, 技术支持], alternative_names[软件X, 软件Y, 软件Z] ) ahp.compute_weights() print(软件选型结果) for name, weight in sorted(zip(ahp.alternative_names, ahp.final_weights), keylambda x: x[1], reverseTrue): print(f {name}: {weight:.4f})《AI提示工程必知必会》为读者提供了丰富的AI提示工程知识与实战技能主要包括各类提示词的应用如问答式、指令式、状态类、建议式、安全类和感谢类提示词以及如何通过实战演练掌握提示词的使用技巧使用提示词进行文本摘要、改写重述、语法纠错、机器翻译等语言处理任务以及在数据挖掘、程序开发等领域的应用AI在绘画创作上的应用百度文心一言和阿里通义大模型这两大智能平台的特性与功能以及市场调研中提示词的实战应用。通过阅读《AI提示工程必知必会》读者可掌握如何有效利用AI提示工程提升工作效率创新工作流程并在职场中脱颖而出。
返回列表