Python因果图
项目描述
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。
文档
请参阅开发版本文档。
或参阅稳定版本文档
安装
最佳安装方式是通过pip
或conda
。对于开发者,他们也可以使用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做出贡献将会很有意义,因为您将为因果推理所需的一个重要的软件包做出贡献。
有关更多详细信息,请参阅我们的贡献指南。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。