DoWhy 文档#

日期: 2024 年 11 月 24 日 版本: v0.12

相关资源: 源代码库 | 问题与想法 | PyWhy 组织 | PyPI 上的 DoWhy |

加入我们的 Discord 社区: https://discord.gg/cSBGb3vsZb

就像机器学习库为预测所做的那样,DoWhy 是一个 Python 库,旨在激发因果思维和分析。DoWhy 提供了各种各样的算法,用于效应估计、因果结构学习、因果结构诊断、根本原因分析、干预和反事实分析。

入门指南

DoWhy 新手?我们的入门指南将帮助您在几分钟内快速上手。它会帮助您安装 DoWhy 并编写您的第一行代码。完成后,您就可以运行示例并按照用户指南进行学习了。

用户指南

对于因果推理和 DoWhy 完全是新手?那么您可能需要阅读我们的全面用户指南。它将引导您了解所需的一切,包括解决非简单问题时需要掌握的概念和原理。

示例

如果您喜欢通过示例学习,我们建议您浏览示例。它涵盖了各种各样的问题,您可以将其与您自己的问题进行类比。

API 参考

API 参考包含对 DoWhy 中包含的函数、模块和对象的详细描述。它假定您已理解关键概念。

与现有因果推理软件的主要区别#

与现有因果推理软件相比,DoWhy 有四个主要区别

明确的识别假设

假设是 DoWhy 中的第一类公民。

每次分析都始于构建因果模型。假设可以图形化地查看,或以条件独立性语句的形式表达。此外,在 GCMs 的情况下,每个节点的数据生成过程都被明确建模。在可能的情况下,DoWhy 还可以使用观测数据自动测试所陈述的假设。

识别与估计的分离

识别是因果问题。估计仅仅是统计问题。

DoWhy 尊重这一界限并将它们分开处理。这使得因果推理的重点放在识别上,并解放了对目标可估量使用任何可用统计估计器的估计过程。此外,对于单个已识别的可估量,可以使用多种估计方法,反之亦然。建模因果机制也是如此,可以使用任何第三方机器学习包来建模函数关系。

假设的自动验证

当关键识别假设可能不满足时会发生什么?

因果分析中最关键且经常被跳过的一部分是检查关于因果关系的假设是否成立。DoWhy 可以轻松地自动对获得的估计值运行敏感性分析和鲁棒性检查,以证伪给定的因果图,或评估拟合的因果机制。

复杂算法简单应用的默认参数

选择正确的变量集或模型是一个难题。

DoWhy 旨在默认选择合适的参数,同时允许用户完全自定义每个函数调用和模型规范。例如,DoWhy 会自动选择最合适的识别方法,或提供自动分配合适因果机制的功能。

最后,DoWhy 易于扩展,特别注重支持其他库,如 EconML、CausalML、scikit-learn 等。算法以模块化方式实现,鼓励用户贡献自己的算法或简单地插入不同的自定义模型。