DoWhy 文档#
日期: 2024 年 11 月 24 日 版本: v0.12
相关资源: 源代码库 | 问题与想法 | PyWhy 组织 | PyPI 上的 DoWhy |
加入我们的 Discord 社区: https://discord.gg/cSBGb3vsZb
就像机器学习库为预测所做的那样,DoWhy 是一个 Python 库,旨在激发因果思维和分析。DoWhy 提供了各种各样的算法,用于效应估计、因果结构学习、因果结构诊断、根本原因分析、干预和反事实分析。
与现有因果推理软件的主要区别#
与现有因果推理软件相比,DoWhy 有四个主要区别
- 明确的识别假设
假设是 DoWhy 中的第一类公民。
每次分析都始于构建因果模型。假设可以图形化地查看,或以条件独立性语句的形式表达。此外,在 GCMs 的情况下,每个节点的数据生成过程都被明确建模。在可能的情况下,DoWhy 还可以使用观测数据自动测试所陈述的假设。
- 识别与估计的分离
识别是因果问题。估计仅仅是统计问题。
DoWhy 尊重这一界限并将它们分开处理。这使得因果推理的重点放在识别上,并解放了对目标可估量使用任何可用统计估计器的估计过程。此外,对于单个已识别的可估量,可以使用多种估计方法,反之亦然。建模因果机制也是如此,可以使用任何第三方机器学习包来建模函数关系。
- 假设的自动验证
当关键识别假设可能不满足时会发生什么?
因果分析中最关键且经常被跳过的一部分是检查关于因果关系的假设是否成立。DoWhy 可以轻松地自动对获得的估计值运行敏感性分析和鲁棒性检查,以证伪给定的因果图,或评估拟合的因果机制。
- 复杂算法简单应用的默认参数
选择正确的变量集或模型是一个难题。
DoWhy 旨在默认选择合适的参数,同时允许用户完全自定义每个函数调用和模型规范。例如,DoWhy 会自动选择最合适的识别方法,或提供自动分配合适因果机制的功能。
最后,DoWhy 易于扩展,特别注重支持其他库,如 EconML、CausalML、scikit-learn 等。算法以模块化方式实现,鼓励用户贡献自己的算法或简单地插入不同的自定义模型。