跳转到主要内容

Python因果图

项目描述

Code style: black CircleCI unit-tests Checked with mypy codecov

PyWhy-Graphs

pywhy-graphs是一个Python图形库,它通过扩展networkx的混合边图概念来实现因果图形结构的轻量级API,包括因果图遍历算法。

注意:由于networkx中当前的正在进行中的MixedEdgeGraph类,API可能会在废弃周期之外发生变化。更多信息,请参阅https://github.com/networkx/networkx/pull/5947

为什么?

在Python中因果图形模型的表示严重不足。

PyWhy-Graphs实现了ADMG、CPDAG和PAG的图形API层。对于因果有向无环图(DAGs),我们建议使用networkx.DiGraph类,并通过networkx.is_directed_acyclic_graph函数确保无环性。

现有的旨在表示因果图的软件包要么脱离了networkX API,要么仅实现了相关因果图的一个子集。通过保持与稳健的NetworkX API一致,我们旨在确保一致的用户体验以及因果图形模型的温和引入。《MixedEdgeGraph》实例是networkx图形的组合,具有类似的API,并增加了“边类型”的概念,该概念指定了任何函数应操作哪个边类型子图。例如

# adds a directed edge from x to y
G.add_edge('x', 'y', edge_type='directed')

# adds a bidirected edge from x to y
G.add_edge('x', 'y', edge_type='bidirected')

此外,从因果模型中进行采样是非平凡的,但对于发现、ID、估计等多个领域的许多因果算法来说却是必需的。我们旨在提供易于与因果图连接的模拟模块,以提供用于建模因果图和模拟数据的简单稳健API。

文档

请参阅开发版本文档

或参阅稳定版本文档

安装

最佳安装方式是通过pipconda。对于开发者,他们也可以使用pip从源代码安装。请参阅安装页面获取详细信息。

依赖项

我们旨在提供一个非常轻量级的依赖结构。pywhy-graphs至少需要

* Python (>=3.8)
* numpy
* scipy
* networkx

运行单元测试和文档时可能需要额外的功能。

用户安装

如果您已经安装了numpy、scipy和networkx,那么安装pywhy-graphs最简单的方法是使用pip

# doesn't work until we make an official release :p
pip install -U pywhy-graphs

要从github安装该软件包,请克隆存储库,然后使用cd进入目录。然后您可以使用poetry进行安装

poetry install

# for vizualizing graph functionality
poetry install --extras viz

# if you would like an editable install of dodiscover for dev purposes
pip install -e .

pip install https://api.github.com/repos/py-why/pywhy-graphs/zipball/main

贡献

Pywhy-Graphs一直在寻找新的贡献者来帮助改进软件包,无论是算法、文档、图的使用示例,还是更多!为Pywhy-Graphs做出贡献将会很有意义,因为您将为因果推理所需的一个重要的软件包做出贡献。

有关更多详细信息,请参阅我们的贡献指南

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

pywhy_graphs-0.1.0.tar.gz (106.4 kB 查看散列值)

上传时间 源代码

构建分发

pywhy_graphs-0.1.0-py3-none-any.whl (138.8 kB 查看散列值)

上传时间 Python 3

由以下赞助商支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面