Causal-learn,由CMU张坤老师主导,多个团队(CMU因果研究团队、DMIR蔡瑞初老师团队、宫明明老师团队和Shohei Shimizu老师团队)联合开发出品的因果发现算法平台。
Causal-learn用Python实现了CMU开发的基于Java的Tetrad因果发现平台,并进一步加入新的算法和功能。其中包含了因果发现的经典算法与API,并且提供了模块化的代码,以方便研究者实现自己的算法。Causal-learn所有模块均基于Python实现,从而避免了传统因果发现库对R/Java的依赖,为Python开发者提供便利。
先列一下库的相关链接:
GitHub: https://github.com/cmu-phil/causal-learn
文档: https://causal-learn.readthedocs.io/en/latest/
简单使用案例:https://github.com/cmu-phil/causal-learn/tree/main/tests
安装causal-learn
可以通过pip来实现
pip install causal-learn
开始使用causal-learn
causal-learn支持:
- 基于约束的因果发现方法(Constrained-based causal discovery methods): PC、FCI、CD-NOD算法等;
- 基于评分的因果发现方法(Score-based causal discovery methods): 包含BIC、BDeu、generalized score等评分的GES算法;
- 基于函数因果模型的因果发现方法(Functional causal models-based causal discovery methods): LiNGAM及其拓展方法、ANM、PNL等;
- 隐因果表征学习方法(Hidden causal representation learning):GIN方法;
- 格兰杰因果分析(Granger causal analysis);
- 多个独立的基础模块,比如独立性测试,评分函数,图操作,评测指标;
- 更多最新的因果发现算法,如gradient-based methods等。
causal-learn为所有模型都提供了简单易用的接口,用户可以通过一行代码在自己的数据上进行因果发现:
pc(data, alpha, indep_test, stable, uc_rule, uc_priority, mvpc, correction_name, background_knowledge, verbose, show_progress)
可视化结果与评测
在算法运行结束后,用户可以查看生成的因果图,并通过多种评测指标来与基准图进行对比:
pyd = GraphUtils.to_pydot(G)
pyd.write_png('test.png')
Causal-learn团队正在积极维护与开发算法平台,并持续更新最新的因果发现算法。欢迎大家关注以及提供宝贵意见!如果有问题或者建议,请联系我们。
建议与反馈: Yujia Zheng:yujiazh@cmu.edu,Wei Chen:chenweiDelight@gmail.com