From c24863621bb09e8ab175b19326ce81e8b5ff8db8 Mon Sep 17 00:00:00 2001 From: yanxinyi <41045439+yanxinyi620@users.noreply.github.com> Date: Mon, 24 May 2021 17:10:50 +0800 Subject: [PATCH 1/5] update gcastle version 1.0.1 --- gcastle/.gitignore | 3 +- gcastle/README.cn.md | 84 +- gcastle/README.md | 82 +- gcastle/castle/algorithms/__init__.py | 2 +- .../castle/algorithms/gradient/__init__.py | 2 +- .../castle/algorithms/gradient/corl1/corl1.py | 2 +- .../castle/algorithms/gradient/corl2/corl2.py | 2 +- .../algorithms/gradient/gran_dag/__init__.py | 2 +- .../gradient/gran_dag/base/__init__.py | 2 - .../gradient/gran_dag/base/base_model.py | 29 - .../algorithms/gradient/gran_dag/gran_dag.py | 931 +++++++----------- .../gradient/gran_dag/utils/__init__.py | 1 - .../gradient/gran_dag/utils/save.py | 66 -- .../gradient/graph_auto_encoder/gae.py | 175 ++-- .../algorithms/gradient/masked_csl/mcsl.py | 155 +-- .../gradient/masked_csl/models/masked_nn.py | 3 - .../models/masked_quadratic_regression.py | 2 - .../algorithms/gradient/notears/linear.py | 63 +- gcastle/castle/algorithms/gradient/rl/rl.py | 55 +- gcastle/castle/algorithms/pc/pc.py | 411 ++++---- gcastle/castle/algorithms/ttpm/ttpm.py | 63 +- gcastle/castle/common/independence_tests.py | 50 + gcastle/castle/datasets/loader.py | 12 +- gcastle/castle/datasets/simulation.py | 23 +- gcastle/docs/ANM.md | 78 ++ gcastle/docs/GraN-DAG.md | 143 +++ gcastle/docs/PC.md | 85 ++ gcastle/docs/TTPM.md | 166 ++++ gcastle/docs/image/CONNECTIVITY.PNG | Bin 0 -> 2792 bytes gcastle/docs/image/NN.PNG | Bin 0 -> 3691 bytes gcastle/docs/image/NOTEARS_Algorithm_1.PNG | Bin 0 -> 55969 bytes gcastle/docs/image/NOTEARS_Algorithm_2.PNG | Bin 0 -> 102203 bytes gcastle/docs/image/NOTEARS_Formula_1.PNG | Bin 0 -> 20699 bytes gcastle/docs/image/NOTEARS_Formula_2.PNG | Bin 0 -> 12243 bytes gcastle/docs/image/NOTEARS_Formula_3.PNG | Bin 0 -> 8551 bytes gcastle/docs/image/NOTEARS_Formula_4.PNG | Bin 0 -> 8771 bytes gcastle/docs/image/NOTEARS_Formula_5.PNG | Bin 0 -> 21839 bytes gcastle/docs/image/NOTEARS_Formula_6.PNG | Bin 0 -> 5772 bytes gcastle/docs/image/NOTEARS_Formula_7.PNG | Bin 0 -> 20283 bytes gcastle/docs/image/NOTEARS_Formula_8.PNG | Bin 0 -> 12109 bytes gcastle/docs/image/NOTEARS_result_1.png | Bin 0 -> 13654 bytes gcastle/docs/image/RL_result_1.png | Bin 0 -> 13654 bytes gcastle/docs/image/adjacency.PNG | Bin 0 -> 3382 bytes gcastle/docs/image/causal_intensity_f.png | Bin 0 -> 16624 bytes gcastle/docs/image/constraint.PNG | Bin 0 -> 1456 bytes gcastle/docs/image/flowchart.png | Bin 0 -> 16718 bytes gcastle/docs/image/hill_climbing.png | Bin 0 -> 152859 bytes gcastle/docs/image/lag.PNG | Bin 0 -> 5395 bytes gcastle/docs/image/likelihood.png | Bin 0 -> 56784 bytes gcastle/docs/image/optimization.PNG | Bin 0 -> 4567 bytes gcastle/docs/image/pc1.png | Bin 0 -> 105473 bytes gcastle/docs/image/pc2.PNG | Bin 0 -> 72661 bytes gcastle/docs/image/plot.png | Bin 0 -> 26875 bytes gcastle/docs/image/sequence.PNG | Bin 0 -> 3836 bytes gcastle/docs/image/ttpm_fig.png | Bin 0 -> 127744 bytes gcastle/docs/notears.md | 165 ++++ .../{castle => }/example/corl1/corl1_demo.py | 2 +- .../{castle => }/example/corl2/corl2_demo.py | 2 +- gcastle/{castle => }/example/gae/gae_demo.py | 8 +- gcastle/example/gran_dag/gran_dag.yaml | 33 + .../example/gran_dag/gran_demo.py | 8 +- .../example/lingam/direct_demo.py | 0 .../{castle => }/example/lingam/ica_demo.py | 0 .../{castle => }/example/masked/mcsl_demo.py | 8 +- .../example/notears/golem_demo.py | 0 .../example/notears/low_rank_demo.py | 0 .../{castle => }/example/notears/mlp_demo.py | 0 gcastle/example/notears/notears.yaml | 11 + .../example/notears/notears_demo.py | 0 .../{castle => }/example/notears/sob_demo.py | 0 gcastle/example/pc/pc.yaml | 6 + gcastle/{castle => }/example/pc/pc_demo.py | 5 +- gcastle/example/rl/rl.yaml | 47 + gcastle/{castle => }/example/rl/rl_demo.py | 4 +- gcastle/example/ttpm/ttpm.yaml | 10 + .../{castle => }/example/ttpm/ttpm_demo.py | 11 +- gcastle/package.md | 87 ++ ...any.whl => gcastle-1.0.1-py3-none-any.whl} | Bin 198710 -> 200621 bytes gcastle/packages/gcastle-1.0.1.tar.gz | Bin 0 -> 104599 bytes gcastle/requirements.txt | 4 +- gcastle/run.py | 140 +++ gcastle/setup.py | 15 +- 82 files changed, 2010 insertions(+), 1248 deletions(-) delete mode 100644 gcastle/castle/algorithms/gradient/gran_dag/utils/__init__.py delete mode 100644 gcastle/castle/algorithms/gradient/gran_dag/utils/save.py create mode 100644 gcastle/castle/common/independence_tests.py create mode 100644 gcastle/docs/ANM.md create mode 100644 gcastle/docs/GraN-DAG.md create mode 100644 gcastle/docs/PC.md create mode 100644 gcastle/docs/TTPM.md create mode 100644 gcastle/docs/image/CONNECTIVITY.PNG create mode 100644 gcastle/docs/image/NN.PNG create mode 100644 gcastle/docs/image/NOTEARS_Algorithm_1.PNG create mode 100644 gcastle/docs/image/NOTEARS_Algorithm_2.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_1.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_2.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_3.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_4.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_5.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_6.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_7.PNG create mode 100644 gcastle/docs/image/NOTEARS_Formula_8.PNG create mode 100644 gcastle/docs/image/NOTEARS_result_1.png create mode 100644 gcastle/docs/image/RL_result_1.png create mode 100644 gcastle/docs/image/adjacency.PNG create mode 100644 gcastle/docs/image/causal_intensity_f.png create mode 100644 gcastle/docs/image/constraint.PNG create mode 100644 gcastle/docs/image/flowchart.png create mode 100644 gcastle/docs/image/hill_climbing.png create mode 100644 gcastle/docs/image/lag.PNG create mode 100644 gcastle/docs/image/likelihood.png create mode 100644 gcastle/docs/image/optimization.PNG create mode 100644 gcastle/docs/image/pc1.png create mode 100644 gcastle/docs/image/pc2.PNG create mode 100644 gcastle/docs/image/plot.png create mode 100644 gcastle/docs/image/sequence.PNG create mode 100644 gcastle/docs/image/ttpm_fig.png create mode 100644 gcastle/docs/notears.md rename gcastle/{castle => }/example/corl1/corl1_demo.py (98%) rename gcastle/{castle => }/example/corl2/corl2_demo.py (98%) rename gcastle/{castle => }/example/gae/gae_demo.py (87%) create mode 100644 gcastle/example/gran_dag/gran_dag.yaml rename gcastle/{castle => }/example/gran_dag/gran_demo.py (90%) rename gcastle/{castle => }/example/lingam/direct_demo.py (100%) rename gcastle/{castle => }/example/lingam/ica_demo.py (100%) rename gcastle/{castle => }/example/masked/mcsl_demo.py (90%) rename gcastle/{castle => }/example/notears/golem_demo.py (100%) rename gcastle/{castle => }/example/notears/low_rank_demo.py (100%) rename gcastle/{castle => }/example/notears/mlp_demo.py (100%) create mode 100644 gcastle/example/notears/notears.yaml rename gcastle/{castle => }/example/notears/notears_demo.py (100%) rename gcastle/{castle => }/example/notears/sob_demo.py (100%) create mode 100644 gcastle/example/pc/pc.yaml rename gcastle/{castle => }/example/pc/pc_demo.py (91%) create mode 100644 gcastle/example/rl/rl.yaml rename gcastle/{castle => }/example/rl/rl_demo.py (96%) create mode 100644 gcastle/example/ttpm/ttpm.yaml rename gcastle/{castle => }/example/ttpm/ttpm_demo.py (84%) create mode 100644 gcastle/package.md rename gcastle/packages/{gcastle-1.0.0-py3-none-any.whl => gcastle-1.0.1-py3-none-any.whl} (59%) create mode 100644 gcastle/packages/gcastle-1.0.1.tar.gz create mode 100644 gcastle/run.py diff --git a/gcastle/.gitignore b/gcastle/.gitignore index 02e8d060..bd1a3075 100644 --- a/gcastle/.gitignore +++ b/gcastle/.gitignore @@ -1,4 +1,4 @@ -# Python: +# Python *.pyc *.pyo *.pyd @@ -12,4 +12,3 @@ build # Specific files log web -packages/*.tar.gz diff --git a/gcastle/README.cn.md b/gcastle/README.cn.md index 3c8cd3e2..f31d905e 100644 --- a/gcastle/README.cn.md +++ b/gcastle/README.cn.md @@ -2,67 +2,70 @@ [English Version](./README.md) -1.0.0 版本发布 +1.0.1 版本发布 ## 简介 -`gCastle`是[华为诺亚方舟实验室](https://www.noahlab.com.hk/#/home)自研的因果结构学习工具链,主要的功能和愿景包括: +`gCastle`是诺亚方舟实验室自研的因果结构学习工具链,主要的功能和愿景包括: * 数据生成及处理: 包含各种模拟数据生成算子,数据读取算子,数据处理算子(如先验灌入,变量选择,CRAM)。 * 因果图构建: 提供了一个因果结构学习python算法库,包含了主流的因果学习算法以及最近兴起的基于梯度的因果结构学习算法。 * 因果评价: 提供了常用的因果结构学习性能评价指标,包括F1, SHD, FDR, TPR, FDR, NNZ等。 - ## 算法列表 | 算法 | 数据分类 | 说明 |状态 | | :--: | :-- | :-- | :-- | -| [PC](https://arxiv.org/abs/math/0510436) | IID | 一种基于独立性检验的经典因果发现算法 | v1.0.0 | -| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | 一种线性非高斯无环模型的直接学习方法 | v1.0.0 | -| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | 一种线性非高斯无环模型的因果学习算法 | v1.0.0 | -| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | 一种基于梯度、针对线性数据模型的因果结构学习算法 | v1.0.0 | -| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID| 一种深度可微分、基于神经网络建模的因果结构学习算法 | v1.0.0 | -| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | 一种深度可微分、基于Sobolev空间建模的因果结构学习算法 | v1.0.0 | -| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | 基于low rank假定、针对线性数据模型的因果结构学习算法 | v1.0.0 | -| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | 一种基于NOTEARS、通过减少优化循环次数提升训练效率的因果结构学习算法 | v1.0.0 | -| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | 一种深度可微分、针对非线性加性噪声数据模型的因果结构学习算法 | v1.0.0 | -| [MCSL](https://arxiv.org/abs/1910.08527) | IID | 一种基于掩码梯度的因果结构学习算法 | v1.0.0 | -| [GAE](https://arxiv.org/abs/1911.07420) | IID | 一种基于图自编码器的因果发现算法 | v1.0.0 | -| [RL](https://arxiv.org/abs/1906.04477) | IID | 一种基于强化学习的因果发现算法 | v1.0.0 | -| CORL1 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.0 | -| CORL2 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.0 | +| [PC](https://arxiv.org/abs/math/0510436) | IID | 一种基于独立性检验的经典因果发现算法 | v1.0.1 | +| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | 一种线性非高斯无环模型的直接学习方法 | v1.0.1 | +| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | 一种线性非高斯无环模型的因果学习算法 | v1.0.1 | +| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | 一种基于梯度、针对线性数据模型的因果结构学习算法 | v1.0.1 | +| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID| 一种深度可微分、基于神经网络建模的因果结构学习算法 | v1.0.1 | +| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | 一种深度可微分、基于Sobolev空间建模的因果结构学习算法 | v1.0.1 | +| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | 基于low rank假定、针对线性数据模型的因果结构学习算法 | v1.0.1 | +| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | 一种基于NOTEARS、通过减少优化循环次数提升训练效率的因果结构学习算法 | v1.0.1 | +| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | 一种深度可微分、针对非线性加性噪声数据模型的因果结构学习算法 | v1.0.1 | +| [MCSL](https://arxiv.org/abs/1910.08527) | IID | 一种基于掩码梯度的因果结构学习算法 | v1.0.1 | +| [GAE](https://arxiv.org/abs/1911.07420) | IID | 一种基于图自编码器的因果发现算法 | v1.0.1 | +| [RL](https://arxiv.org/abs/1906.04477) | IID | 一种基于强化学习的因果发现算法 | v1.0.1 | +| CORL1 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.1 | +| CORL2 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.1 | | TTPM | EVENT SEQUENCE | 一种针对时空事件序列的基于时空Hawkes Process的因果结构学习算法 | 开发中 | | HPCI | EVENT SEQUENCE | 一种针对时序事件序列的基于Hawkes Process和CI tests的因果结构学习算法 | 开发中 | | PCTS | TS | 一种针对时间序列数据的基于CI tests的因果结构学习算法(PC算法的时序版本) | 开发中 | - ## 获取和安装 ### 依赖 -- python (>= 3.6) -- tqdm (>= 4.48.2) -- numpy (>= 1.19.2) -- pandas (>= 0.22.0) -- scipy (>= 1.4.1) -- scikit-learn (>= 0.21.1) -- matplotlib (>=2.1.2) -- python-igraph (>= 0.8.2) -- loguru (>= 0.5.3) -- networkx (>= 2.5) -- torch (>= 1.4.0) -- tensorflow (== 1.15.0) + +* python (>= 3.6) +* tqdm (>= 4.48.2) +* numpy (>= 1.19.1) +* pandas (>= 0.22.0) +* scipy (>= 1.4.1) +* scikit-learn (>= 0.21.1) +* matplotlib (>=2.1.2) +* python-igraph (>= 0.8.2) +* loguru (>= 0.5.3) +* networkx (>= 2.5) +* torch (>= 1.4.0) +* tensorflow (>= 1.15.0) ### 获取安装包(也可直接源码安装) -下载:[castle-1.0.0-py3-none-any.whl](./packages/gcastle-1.0.0-py3-none-any.whl) + +下载:[castle-1.0.1-py3-none-any.whl](./packages/gcastle-1.0.1-py3-none-any.whl) ### PIP安装 -``` -pip install gcastle-1.0.0-py3-none-any.whl + +```bash +pip install gcastle-1.0.1-py3-none-any.whl ``` ## 算法使用指导 -以PC算法为例: + +以PC算法为例: + ```python from castle.common import GraphDAG from castle.metrics import MetricsDAG @@ -70,9 +73,9 @@ from castle.datasets import IIDSimulation, DAG from castle.algorithms import PC # data simulation, simulate true causal dag and train_data. -weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, +weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, weight_range=(0.5, 2.0), seed=1) -dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', +dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', sem_type='gauss') true_causal_matrix, X = dataset.B, dataset.X @@ -81,18 +84,15 @@ pc = PC() pc.learn(X) # plot predict_dag and true_dag -GraphDAG(pc.causal_matrix, true_causal_matrix, 'result') +GraphDAG(pc.causal_matrix, true_causal_matrix) # calculate metrics mt = MetricsDAG(pc.causal_matrix, true_causal_matrix) print(mt.metrics) ``` -大家可访问 [examples](./castle/example) 获取更多的示例. + +大家可访问 [examples](./example) 获取更多的示例. ## 合作和贡献 -这是`gCastle`的第一个发布版本,我们将持续对相关代码及文档进行完善和优化。下面是我们针对下一个版本的完善和优化计划(备注:下一个版本预计在2021年4月下旬发布): -* 更完善的文档说明:包括每个算法基本原理的介绍,使用gCastle工具快速设计因果结构学习实验的简明手册,更易读的API说明。 -* 算法库拓展:新增`GES`,`HPCI`,`TTPM`等因果结构学习算法,并提供简易的可配置脚本辅助进行相应算法的调用和运行。 -* 真实场景数据集:将陆续公开一批来源于真实AIOPS场景的时间序列和事件序列数据集,其中真实的因果图标注来源于业务专家经验。 欢迎大家使用`gCastle`. 该项目尚处于起步阶段,欢迎各个经验等级的贡献者。有任何疑问及建议,包括修改bug、贡献算法、完善文档等,请在社区提交issue,我们会及时回复交流。 diff --git a/gcastle/README.md b/gcastle/README.md index 51787c2c..c153c020 100644 --- a/gcastle/README.md +++ b/gcastle/README.md @@ -2,11 +2,12 @@ [中文版本](./README.cn.md) -Version 1.0.0 released. +Version 1.0.1 released. ## Introduction -`gCastle` is a causal structure learning toolchain developed by [Huawei Noah's Ark Lab](https://www.noahlab.com.hk/#/home). The package contains various functionality related to causal learning and evaluation, including: +`gCastle` is a causal structure learning toolchain developed by [Huawei Noah's Ark Lab](https://www.noahlab.com.hk/#/home). The package contains various functionality related to causal learning and evaluation, including: + * Data generation and processing: data simulation, data reading operators, and data pre-processing operators(such as prior injection and variable selection). * Causal structure learning: causal structure learning methods, including both classic and recently developed methods, especially gradient-based ones that can handle large problems. * Evaluation metrics: various commonly used metrics for causal structure learning, including F1, SHD, FDR, TPR, FDR, NNZ, etc. @@ -15,52 +16,55 @@ Version 1.0.0 released. | Algorithm | Category (based on data) | Description | Status | | :--: | :-- | :-- | :-- | -| [PC](https://arxiv.org/abs/math/0510436) | IID | A classic causal discovery algorithm based on conditional independence tests | v1.0.0 | -| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | A direct learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.0 | -| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | An ICA-based learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.0 | -| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | A gradient-based algorithm for linear data models (typically with least-squares loss) | v1.0.0 | -| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using neural network modeling for non-linear causal relationships | v1.0.0 | -| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using Sobolev space modeling for non-linear causal relationships | v1.0.0 | -| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | Adapting NOTEARS for large problems with low-rank causal graphs | v1.0.0 | -| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | A more efficient version of NOTEARS that can reduce number of optimization iterations | v1.0.0 | -| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | A gradient-based algorithm using neural network modeling for non-linear additive noise data | v1.0.0 | -| [MCSL](https://arxiv.org/abs/1910.08527) | IID | A gradient-based algorithm for non-linear additive noise data by learning the binary adjacency matrix| v1.0.0 | -| [GAE](https://arxiv.org/abs/1911.07420) | IID | A gradient-based algorithm using graph autoencoder to model non-linear causal relationships| v1.0.0 | -| [RL](https://arxiv.org/abs/1906.04477) | IID | A RL-based algorithm that can work with flexible score functions (including non-smooth ones) | v1.0.0 | -| CORL1 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.0 | -| CORL2 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.0 | +| [PC](https://arxiv.org/abs/math/0510436) | IID | A classic causal discovery algorithm based on conditional independence tests | v1.0.1 | +| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | A direct learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.1 | +| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | An ICA-based learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.1 | +| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | A gradient-based algorithm for linear data models (typically with least-squares loss) | v1.0.1 | +| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using neural network modeling for non-linear causal relationships | v1.0.1 | +| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using Sobolev space modeling for non-linear causal relationships | v1.0.1 | +| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | Adapting NOTEARS for large problems with low-rank causal graphs | v1.0.1 | +| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | A more efficient version of NOTEARS that can reduce number of optimization iterations | v1.0.1 | +| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | A gradient-based algorithm using neural network modeling for non-linear additive noise data | v1.0.1 | +| [MCSL](https://arxiv.org/abs/1910.08527) | IID | A gradient-based algorithm for non-linear additive noise data by learning the binary adjacency matrix| v1.0.1 | +| [GAE](https://arxiv.org/abs/1911.07420) | IID | A gradient-based algorithm using graph autoencoder to model non-linear causal relationships| v1.0.1 | +| [RL](https://arxiv.org/abs/1906.04477) | IID | A RL-based algorithm that can work with flexible score functions (including non-smooth ones) | v1.0.1 | +| CORL1 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.1 | +| CORL2 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.1 | | TTPM | EVENT SEQUENCE | A causal structure learning algorithm based on Topological Hawkes process for spatio-temporal event sequences | under development. | | HPCI | EVENT SEQUENCE | A causal structure learning algorithm based on Hawkes process and CI tests for event sequences | under development. | | PCTS | TS | A causal structure learning algorithm based on CI tests for time series data (time series version of the PC algorithm) | under development. | - ## Installation ### Dependencies + gCastle requires: -- python (>= 3.6) -- tqdm (>= 4.48.2) -- numpy (>= 1.19.2) -- pandas (>= 0.22.0) -- scipy (>= 1.4.1) -- scikit-learn (>= 0.21.1) -- matplotlib (>=2.1.2) -- python-igraph (>= 0.8.2) -- loguru (>= 0.5.3) -- networkx (>= 2.5) -- torch (>= 1.4.0) -- tensorflow (== 1.15.0) +* python (>= 3.6) +* tqdm (>= 4.48.2) +* numpy (>= 1.19.1) +* pandas (>= 0.22.0) +* scipy (>= 1.4.1) +* scikit-learn (>= 0.21.1) +* matplotlib (>=2.1.2) +* python-igraph (>= 0.8.2) +* loguru (>= 0.5.3) +* networkx (>= 2.5) +* torch (>= 1.4.0) +* tensorflow (>= 1.15.0) ### Obtain the installation package (installing from source code) -Download:[castle-1.0.0-py3-none-any.whl](./packages/gcastle-1.0.0-py3-none-any.whl) + +Download:[castle-1.0.1-py3-none-any.whl](./packages/gcastle-1.0.1-py3-none-any.whl) ### PIP installation -``` -pip install gcastle-1.0.0-py3-none-any.whl + +```bash +pip install gcastle-1.0.1-py3-none-any.whl ``` ## Usage Example (PC algorithm) + ```python from castle.common import GraphDAG from castle.metrics import MetricsDAG @@ -68,9 +72,9 @@ from castle.datasets import IIDSimulation, DAG from castle.algorithms import PC # data simulation, simulate true causal dag and train_data. -weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, +weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, weight_range=(0.5, 2.0), seed=1) -dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', +dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', sem_type='gauss') true_causal_matrix, X = dataset.B, dataset.X @@ -79,19 +83,21 @@ pc = PC() pc.learn(X) # plot predict_dag and true_dag -GraphDAG(pc.causal_matrix, true_causal_matrix, 'result') +GraphDAG(pc.causal_matrix, true_causal_matrix) # calculate metrics mt = MetricsDAG(pc.causal_matrix, true_causal_matrix) print(mt.metrics) ``` -You can visit [examples](./castle/example) to find more examples. +You can visit [examples](./example) to find more examples. ## Next Up & Contributing -This is the first released version of `gCastle`, we'll be continuously complementing and optimizing the code and documentation. The following items are the main additions planned to be released in the next version (~late April 2021): + +This is the first released version of `gCastle`, we'll be continuously complementing and optimizing the code and documentation. The following items are the main additions planned to be released in the next version (~late June 2021): + * A more sound documentation: including introductions to each algorithm, a guide on how to quickly design an experiment/test using the 'gCastle' tools, more easily readable APIs, etc. * Extension of the algorithm library: add new algorithms including `GES`, `HPCI`, and `TTPM`, and easily configurable scripts to help learn causal structures using the corresponding algorithms. * Real-world datasets: add a couple of interesting time series and event sequences datasets collected from AIOPS scenarios where the true graphs are obtained based on expertise. -We welcome new contributors of all experience levels. If you have any questions or suggestions (such as, contributing new algorithms, optimizing code, improving documentation), please submit an issue here. We will reply as soon as possible. \ No newline at end of file +We welcome new contributors of all experience levels. If you have any questions or suggestions (such as, contributing new algorithms, optimizing code, improving documentation), please submit an issue here. We will reply as soon as possible. diff --git a/gcastle/castle/algorithms/__init__.py b/gcastle/castle/algorithms/__init__.py index 7d577a01..73a16ac9 100644 --- a/gcastle/castle/algorithms/__init__.py +++ b/gcastle/castle/algorithms/__init__.py @@ -22,7 +22,7 @@ from .gradient import NotearsSob from .gradient import NotearsLowRank from .gradient import GOLEM -from .gradient import GraN_DAG, Parameters +from .gradient import GraN_DAG from .gradient import GAE from .gradient import MCSL from .gradient import RL diff --git a/gcastle/castle/algorithms/gradient/__init__.py b/gcastle/castle/algorithms/gradient/__init__.py index 512f25e8..d4616d3a 100644 --- a/gcastle/castle/algorithms/gradient/__init__.py +++ b/gcastle/castle/algorithms/gradient/__init__.py @@ -19,7 +19,7 @@ from .notears.low_rank import NotearsLowRank from .notears.golem import GOLEM -from .gran_dag.gran_dag import GraN_DAG, Parameters +from .gran_dag.gran_dag import GraN_DAG from .graph_auto_encoder.gae import GAE from .masked_csl.mcsl import MCSL diff --git a/gcastle/castle/algorithms/gradient/corl1/corl1.py b/gcastle/castle/algorithms/gradient/corl1/corl1.py index 8ec64ff4..18ade150 100644 --- a/gcastle/castle/algorithms/gradient/corl1/corl1.py +++ b/gcastle/castle/algorithms/gradient/corl1/corl1.py @@ -51,7 +51,7 @@ class CORL1(BaseLearner): >>> from castle.metrics import MetricsDAG >>> true_dag, X = load_dataset(name='iid_test') >>> n = CORL1() - >>> n.learn(X, dag=true_dag) + >>> n.learn(X) >>> GraphDAG(n.causal_matrix, true_dag) >>> met = MetricsDAG(n.causal_matrix, true_dag) >>> print(met.metrics) diff --git a/gcastle/castle/algorithms/gradient/corl2/corl2.py b/gcastle/castle/algorithms/gradient/corl2/corl2.py index 6b9b760c..19597d9b 100644 --- a/gcastle/castle/algorithms/gradient/corl2/corl2.py +++ b/gcastle/castle/algorithms/gradient/corl2/corl2.py @@ -50,7 +50,7 @@ class CORL2(BaseLearner): >>> from castle.metrics import MetricsDAG >>> true_dag, X = load_dataset(name='iid_test') >>> n = CORL2() - >>> n.learn(X, dag=true_dag) + >>> n.learn(X) >>> GraphDAG(n.causal_matrix, true_dag) >>> met = MetricsDAG(n.causal_matrix, true_dag) >>> print(met.metrics) diff --git a/gcastle/castle/algorithms/gradient/gran_dag/__init__.py b/gcastle/castle/algorithms/gradient/gran_dag/__init__.py index 8229a274..1d17e02e 100644 --- a/gcastle/castle/algorithms/gradient/gran_dag/__init__.py +++ b/gcastle/castle/algorithms/gradient/gran_dag/__init__.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -from .gran_dag import GraN_DAG, Parameters \ No newline at end of file +from .gran_dag import GraN_DAG \ No newline at end of file diff --git a/gcastle/castle/algorithms/gradient/gran_dag/base/__init__.py b/gcastle/castle/algorithms/gradient/gran_dag/base/__init__.py index 40445e5f..db0ac4f8 100644 --- a/gcastle/castle/algorithms/gradient/gran_dag/base/__init__.py +++ b/gcastle/castle/algorithms/gradient/gran_dag/base/__init__.py @@ -1,5 +1,3 @@ -from .base_model import BaseModel -from .base_model import LearnableModel from .base_model import NonlinearGauss from .base_model import NonlinearGaussANM diff --git a/gcastle/castle/algorithms/gradient/gran_dag/base/base_model.py b/gcastle/castle/algorithms/gradient/gran_dag/base/base_model.py index 17669926..f9da656e 100644 --- a/gcastle/castle/algorithms/gradient/gran_dag/base/base_model.py +++ b/gcastle/castle/algorithms/gradient/gran_dag/base/base_model.py @@ -13,9 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import pickle - import numpy as np import torch import torch.nn as nn @@ -86,7 +83,6 @@ def forward_given_params(self, x, weights, biases): the parameters of each variable conditional """ - num_zero_weights = 0 for k in range(self.hidden_num + 1): # apply affine operator if k == 0: @@ -95,9 +91,6 @@ def forward_given_params(self, x, weights, biases): else: x = torch.einsum("tij,btj->bti", weights[k], x) + biases[k] - # count num of zeros - num_zero_weights += weights[k].numel() - torch.nonzero(weights[k]).size()[0] - # apply non-linearity if k != self.hidden_num: if self.nonlinear == "leaky-relu": @@ -105,8 +98,6 @@ def forward_given_params(self, x, weights, biases): else: x = torch.sigmoid(x) - self.zero_weights_ratio = num_zero_weights / float(self.numel_weights) - return torch.unbind(x, 1) def get_w_adj(self): @@ -218,26 +209,6 @@ def get_grad_norm(self, mode="wbx"): return torch.sqrt(grad_norm) - def save_parameters(self, exp_path, mode="wbx"): - """ - - Parameters - ---------- - exp_path : str - path for saving model parameters - mode : str - w=weights, b=biases, x=extra_params (order is irrelevant) - """ - params = self.get_parameters(mode=mode) - # save - with open(os.path.join(exp_path, "params_"+mode), 'wb') as f: - pickle.dump(params, f) - - def load_parameters(self, exp_path, mode="wbx"): - with open(os.path.join(exp_path, "params_"+mode), 'rb') as f: - params = pickle.load(f) - self.set_parameters(params, mode=mode) - def get_distribution(self, density_params): raise NotImplementedError diff --git a/gcastle/castle/algorithms/gradient/gran_dag/gran_dag.py b/gcastle/castle/algorithms/gradient/gran_dag/gran_dag.py index 82aa0bff..096449f1 100644 --- a/gcastle/castle/algorithms/gradient/gran_dag/gran_dag.py +++ b/gcastle/castle/algorithms/gradient/gran_dag/gran_dag.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os + import torch import numpy as np from sklearn.ensemble import ExtraTreesRegressor @@ -24,52 +24,133 @@ from .base import compute_constraint from .base import compute_jacobian_avg from .base import is_acyclic -from .utils import Accessor -from castle.metrics import MetricsDAG + from castle.common import BaseLearner, Tensor -class Parameters(object): +class NormalizationData(object): """ - This class for saving parameters for the GraN_DAG algorithm. + Create Normalization Data object + + Parameters + ---------- + data : numpy.ndarray + train x + normalize : bool, default False + whether normalization + mean : float or None default None + Mean value of normalization + std : float or None default None + Standard Deviation of normalization + shuffle : bool + whether shuffle + train_size : float, default 0.8 + ratio of train data for training + train : bool, default True + whether training + random_seed : int + for set random seed + """ + + def __init__(self, data, normalize=False, mean=None, std=None, + shuffle=False, train_size=0.8, train=True, random_seed=42): + self.random = np.random.RandomState(random_seed) + + shuffle_idx = np.arange(data.shape[0]) + if shuffle: + self.random.shuffle(shuffle_idx) + + if isinstance(train_size, float): + train_samples = int(data.shape[0] * train_size) + else: + raise TypeError("The param train_size must be float < 1") + if train: + data = data[shuffle_idx[: train_samples]] + else: + data = data[shuffle_idx[train_samples:]] + # as tensor + self.data_set = torch.as_tensor(data).type(torch.Tensor) + + # Normalize data + self.mean, self.std = mean, std + if normalize: + if not mean or not std: + self.mean = torch.mean(self.data_set, 0, keepdim=True) + self.std = torch.std(self.data_set, 0, keepdim=True) + self.data_set = (self.data_set - self.mean) / self.std + self.n_samples = self.data_set.size(0) + + def sample(self, batch_size): + """sampling from self.dataset + + Parameters + ---------- + batch_size : int + batch size of sample + + Returns + ------- + samples : torch.Tensor + sample data after sampling + torch.ones_like(samples): torch.Tensor + """ + sample_idxs = self.random.choice(np.arange(int(self.n_samples)), + size=(int(batch_size),), + replace=False) + samples = self.data_set[torch.as_tensor(sample_idxs).long()] + + return samples, torch.ones_like(samples) + + +class GraN_DAG(BaseLearner): + """ + Gradient Based Neural DAG Learner + + A gradient-based algorithm using neural network modeling for + non-linear additive noise data + + References: https://arxiv.org/pdf/1906.02226.pdf Parameters ---------- input_dim : int number of input layer, must be int - learning_folder : str - name of folder for save learning data hidden_num : int number of hidden layers hidden_dim : int number of dimension per hidden layer + batch_size : int + batch size of per training of NN lr : float learning rate iterations : int times of iteration + model_name : str, default NonlinearGaussANM + name of model, 'NonlinearGauss' or 'NonlinearGaussANM' + nonlinear : str, default leaky-relu + name of Nonlinear activation function optimizer : str, `rmsprop` or `sgd` Method of optimize h_threshold : float constrained threshold - normalize : bool, default False - whether normalize data gpu : bool, default False whether use gpu + pns : bool, default False + whether use pns before training + pns_thresh : float, default 0.75 + threshold for feature importance score in pns + num_neighbors : int, default None + number of potential parents for each variables + normalize : bool, default False + whether normalize data precision : bool, default False whether use Double precision - if True: use torch.FloatTensor - if False: use torch.DoubleTensor - batch_size : int - batch size of per training of NN + if True, use torch.FloatTensor; if False, use torch.DoubleTensor random_seed : int random seed - model : str, default NonlinearGaussANM - name of model, 'NonlinearGauss' or 'NonlinearGaussANM' - nonlinear : str, default leaky-relu - name of Nonlinear activation function norm_prod : str, default 'paths' - use norm of product of paths + use norm of product of paths, 'none' or 'paths'. square_prod : bool, default False use squared product of paths jac_thresh : bool, default True @@ -80,9 +161,6 @@ class Parameters(object): mu_init : float, default 0.001 initialization of penalty coefficient in the optimization of augmented Lagrangian - num_neighbors : None or int, default None - variable number or neighbors number used in the pns; - default = variable size omega_lambda : float, default 0.0001 tolerance on the delta lambda, to find saddle points omega_mu : float, default 0.9 @@ -92,161 +170,102 @@ class Parameters(object): number of iterations for updating values edge_clamp_range : float, default 0.0001 threshold for keeping the edge (if during training - pns : bool, default False - whether use pns before training - pns_thresh : float, default 0.75 - threshold for feature importance score in pns - train : bool, default True - whether training model - to_dag : bool, default True - whether run to_dag function + + Examples + -------- + Load data + >>> from castle.datasets import load_dataset + >>> target, data = load_dataset(name='iid_test') + + >>> gnd = GraN_DAG(input_dim=data.shape[1]) + >>> gnd.learn(data=data) + + Also print GraN_DAG.model.adjacency with torch.Tensor type + or print GranN_DAG.causal_matrix with numpy.ndarray. + >>> print(gnd.causal_matrix) + >>> print(gnd.model.adjacency) """ - def __init__(self, - input_dim, - learning_folder='learning_data', + def __init__(self, input_dim, hidden_num=2, hidden_dim=10, + batch_size=64, lr=0.001, iterations=100000, + model_name='NonLinGaussANM', + nonlinear='leaky-relu', optimizer='rmsprop', h_threshold=1e-8, - normalize=False, gpu=False, + pns=False, + pns_thresh=0.75, + num_neighbors=None, + normalize=False, precision=False, - batch_size=64, random_seed=42, - model='NonLinGaussANM', - nonlinear='leaky-relu', - norm_prod='paths', - square_prod=False, jac_thresh=True, lambda_init=0.0, mu_init=0.001, - num_neighbors=None, omega_lambda=0.0001, omega_mu=0.9, stop_crit_win=100, edge_clamp_range=0.0001, - pns=False, - pns_thresh=0.75, - train=True, - to_dag=True): - self.learning_folder = learning_folder - self.learning_path = None + norm_prod='paths', + square_prod=False): + super(GraN_DAG, self).__init__() + self.input_dim = input_dim self.hidden_num = hidden_num self.hidden_dim = hidden_dim + self.batch_size = batch_size self.lr = lr self.iterations = iterations + self.model_name = model_name + self.nonlinear = nonlinear self.optimizer = optimizer self.h_threshold = h_threshold - self.normalize = normalize self.gpu = gpu + self.pns = pns + self.pns_thresh = pns_thresh + self.num_neighbors = num_neighbors + self.normalize = normalize self.precision = precision - self.batch_size = batch_size self.random_seed = random_seed - self.model = model - self.nonlinear = nonlinear - self.norm_prod = norm_prod - self.square_prod = square_prod self.jac_thresh = jac_thresh self.lambda_init = lambda_init self.mu_init = mu_init - self.num_neighbors = num_neighbors self.omega_lambda = omega_lambda self.omega_mu = omega_mu self.stop_crit_win = stop_crit_win self.edge_clamp_range = edge_clamp_range - self.pns = pns - self.pns_thresh = pns_thresh - self.train = train - self.to_dag = to_dag - - -class GraN_DAG(BaseLearner): - """ - Gradient Based Neural DAG Learner - - A gradient-based algorithm using neural network modeling for - non-linear additive noise data - - References: https://arxiv.org/pdf/1906.02226.pdf - - Parameters - ---------- - params : Parameters - a class for parameters - - Attributes - ---------- - causal_matrix : numpy.ndarray - Learned causal structure matrix - params : class - Parameters class - model : model - neural network model, NonlinearGauss or NonlinearGaussANM - - Examples - -------- - Load data - >>> from castle.datasets import load_dataset - >>> target, data = load_dataset(name='iid_test') - - Initialize parameters - you can set all parameters in this object like the following example. - >>> params = Parameters(input_dim=data.shape[1]) - >>> gnd = GraN_DAG(params=params) - >>> gnd.learn(data=data, target=target) - - You can print GraN_DAG.model.metrics to see it's evaluation metrics. - Such as TP, FN, FP, TN, SHD, SID e.g. - >>> print(gnd.model.metrics) - - Also print GraN_DAG.model.adjacency with torch.Tensor type - or print GranN_DAG.causal_matrix with numpy.ndarray. - >>> print(gnd.causal_matrix) - >>> print(gnd.model.adjacency) - """ - - def __init__(self, params): - super(GraN_DAG, self).__init__() - - self.params = params + self.norm_prod = norm_prod + self.square_prod = square_prod - def learn(self, data, target=None, *args, **kwargs): + def learn(self, data, *args, **kwargs): """Set up and run the Gran-DAG algorithm Parameters ---------- data: numpy.ndarray or Tensor include Tensor.data - target: numpy.ndarray - train target """ # Control as much randomness as possible - torch.manual_seed(self.params.random_seed) - np.random.seed(self.params.random_seed) + torch.manual_seed(self.random_seed) + np.random.seed(self.random_seed) # Use GPU - if self.params.gpu: - if self.params.precision: + if self.gpu: + if self.precision: torch.set_default_tensor_type('torch.cuda.FloatTensor') else: torch.set_default_tensor_type('torch.cuda.DoubleTensor') else: - if self.params.precision: + if self.precision: torch.set_default_tensor_type('torch.FloatTensor') else: torch.set_default_tensor_type('torch.DoubleTensor') - # create learning_data path - self.params.learning_path = os.path.join(os.getcwd(), - self.params.learning_folder) - if not os.path.exists(self.params.learning_path): - os.makedirs(self.params.learning_path) - # create learning model and ground truth model if isinstance(data, np.ndarray): data = data @@ -257,200 +276,247 @@ def learn(self, data, target=None, *args, **kwargs): 'Tensor or numpy.ndarray, but got {}' .format(type(data))) - if data.shape[1] != self.params.input_dim: + if data.shape[1] != self.input_dim: raise ValueError("The number of variables is `{}`, " "the param input_dim is `{}`, " "they must be consistent" - ".".format(data.shape[1], self.params.input_dim)) - if self.params.model == "NonLinGauss": - self.model = NonlinearGauss(input_dim=self.params.input_dim, - hidden_num=self.params.hidden_num, - hidden_dim=self.params.hidden_dim, + ".".format(data.shape[1], self.input_dim)) + if self.model_name == "NonLinGauss": + self.model = NonlinearGauss(input_dim=self.input_dim, + hidden_num=self.hidden_num, + hidden_dim=self.hidden_dim, output_dim=2, - nonlinear=self.params.nonlinear, - norm_prod=self.params.norm_prod, - square_prod=self.params.square_prod) - elif self.params.model == "NonLinGaussANM": - self.model = NonlinearGaussANM(input_dim=self.params.input_dim, - hidden_num=self.params.hidden_num, - hidden_dim=self.params.hidden_dim, + nonlinear=self.nonlinear, + norm_prod=self.norm_prod, + square_prod=self.square_prod) + elif self.model_name == "NonLinGaussANM": + self.model = NonlinearGaussANM(input_dim=self.input_dim, + hidden_num=self.hidden_num, + hidden_dim=self.hidden_dim, output_dim=1, - nonlinear=self.params.nonlinear, - norm_prod=self.params.norm_prod, - square_prod=self.params.square_prod) + nonlinear=self.nonlinear, + norm_prod=self.norm_prod, + square_prod=self.square_prod) else: raise ValueError( - "self.params.model has to be in {NonLinGauss, NonLinGaussANM}") + "self.model has to be in {NonLinGauss, NonLinGaussANM}") # create NormalizationData - if target is None: - train_data = NormalizationData(data, train_size=1.0, train=True) - test_data = None - else: - train_data = NormalizationData(data, target, train=True) - test_data = NormalizationData(data, target, train=False, - mean=train_data.mean, - std=train_data.std) + train_data = NormalizationData(data, train=True) + test_data = NormalizationData(data, train=False, + mean=train_data.mean, + std=train_data.std) # apply preliminary neighborhood selection if input_dim > 50 - if self.params.pns: - if self.params.num_neighbors is None: - num_neighbors = self.params.input_dim + if self.pns: + if self.num_neighbors is None: + num_neighbors = self.input_dim else: - num_neighbors = self.params.num_neighbors - - pns(model=self.model, all_samples=data, - num_neighbors=num_neighbors, - thresh=self.params.pns_thresh, - learning_path=self.params.learning_path) - - # train until constraint is sufficiently close to being satisfied - if self.params.train: - if os.path.exists(os.path.join(self.params.learning_path, 'pns')): - try: - self.model = Accessor.load(os.path.join( - self.params.learning_path, 'pns'), 'pns_model.pkl') - except: - raise - train(model=self.model, - train_data=train_data, - test_data=test_data, - params=self.params) - # remove edges until we have a DAG - if self.params.to_dag: - if os.path.exists(os.path.join(self.params.learning_path, 'train')): - try: - self.model = Accessor.load(os.path.join( - self.params.learning_path, 'train'), 'train_model.pkl') - except FileNotFoundError: - raise FileNotFoundError("The model is not converged. " - "Adjust the parameters and " - "retrain the model.") - # to_dag - to_dag(self.model, train_data, test_data, self.params) + num_neighbors = self.num_neighbors - self._causal_matrix = self.model.adjacency.detach().numpy() + self.model = neighbors_selection(model=self.model, all_samples=data, + num_neighbors=num_neighbors, + thresh=self.pns_thresh) + # update self.model by train + self._train(train_data=train_data, test_data=test_data) -class NormalizationData(object): - """ - Create Normalization Data object + # update self.model by run _to_dag + self._to_dag(train_data, test_data) - Parameters - ---------- - data : numpy.ndarray - train x - target : numpy.ndarray, default None - train y - normalize : bool, default False - whether normalization - mean : float or None default None - Mean value of normalization - std : float or None default None - Standard Deviation of normalization - shuffle : bool - whether shuffle - train_size : float, default 0.8 - ratio of train data for training - train : bool, default True - whether training - random_seed : int - for set random seed - """ + self._causal_matrix = self.model.adjacency.detach().numpy() - def __init__(self, data, target=None, normalize=False, mean=None, std=None, - shuffle=False, train_size=0.8, train=True, random_seed=42): - self.random = np.random.RandomState(random_seed) - # load target graph - if target is None: - self.adjacency = None - else: - self.adjacency = torch.as_tensor(target).type(torch.Tensor) + def _train(self, train_data, test_data): + """ + Applying augmented Lagrangian to solve the continuous constrained problem. - shuffle_idx = np.arange(data.shape[0]) - if shuffle: - self.random.shuffle(shuffle_idx) + Parameters + ---------- + train_data: NormalizationData + train samples + test_data: NormalizationData object + test samples for validation + """ - if isinstance(train_size, float): - train_samples = int(data.shape[0] * train_size) - else: - raise TypeError("The param train_size must be float < 1") - if train: - data = data[shuffle_idx[: train_samples]] + # initialize stuff for learning loop + aug_lagrangians = [] + aug_lagrangian_ma = [0.0] * (self.iterations + 1) + aug_lagrangians_val = [] + grad_norms = [] + grad_norm_ma = [0.0] * (self.iterations + 1) + + w_adjs = np.zeros((self.iterations, + self.input_dim, + self.input_dim), dtype=np.float32) + + hs = [] + not_nlls = [] # Augmented Lagrangian minus (pseudo) NLL + nlls = [] # NLL on train + nlls_val = [] # NLL on validation + + # Augmented Lagrangian stuff + mu = self.mu_init + lamb = self.lambda_init + mus = [] + lambdas = [] + + if self.optimizer == "sgd": + optimizer = torch.optim.SGD(self.model.parameters(), lr=self.lr) + elif self.optimizer == "rmsprop": + optimizer = torch.optim.RMSprop(self.model.parameters(), lr=self.lr) else: - data = data[shuffle_idx[train_samples:]] - # as tensor - self.data_set = torch.as_tensor(data).type(torch.Tensor) + raise NotImplementedError("optimizer {} is not implemented" + .format(self.optimizer)) + + # Learning loop: + for iter in range(self.iterations): + # compute loss + self.model.train() + x, _ = train_data.sample(self.batch_size) + # Initialize weights and bias + weights, biases, extra_params = self.model.get_parameters(mode="wbx") + loss = - torch.mean( + self.model.compute_log_likelihood(x, weights, biases, extra_params)) + nlls.append(loss.item()) + self.model.eval() + + # constraint related + w_adj = self.model.get_w_adj() + h = compute_constraint(self.model, w_adj) + + # compute augmented Lagrangian + aug_lagrangian = loss + 0.5 * mu * h ** 2 + lamb * h + + # optimization step on augmented lagrangian + optimizer.zero_grad() + aug_lagrangian.backward() + optimizer.step() + + # clamp edges + if self.edge_clamp_range != 0: + with torch.no_grad(): + to_keep = (w_adj > self.edge_clamp_range) * 1 + self.model.adjacency *= to_keep + + # logging + w_adjs[iter, :, :] = w_adj.detach().cpu().numpy().astype(np.float32) + mus.append(mu) + lambdas.append(lamb) + not_nlls.append(0.5 * mu * h.item() ** 2 + lamb * h.item()) + + # compute augmented lagrangian moving average + aug_lagrangians.append(aug_lagrangian.item()) + aug_lagrangian_ma[iter + 1] = aug_lagrangian_ma[iter] + \ + 0.01 * (aug_lagrangian.item() - + aug_lagrangian_ma[iter]) + grad_norms.append(self.model.get_grad_norm("wbx").item()) + grad_norm_ma[iter + 1] = grad_norm_ma[iter] + \ + 0.01 * (grad_norms[-1] - grad_norm_ma[iter]) + + # compute loss on whole validation set + if iter % self.stop_crit_win == 0: + with torch.no_grad(): + x, _ = test_data.sample(test_data.n_samples) + loss_val = - torch.mean(self.model.compute_log_likelihood(x, + weights, + biases, + extra_params)) + nlls_val.append(loss_val.item()) + aug_lagrangians_val.append([iter, loss_val + not_nlls[-1]]) + + # compute delta for lambda + if iter >= 2 * self.stop_crit_win \ + and iter % (2 * self.stop_crit_win) == 0: + t0 = aug_lagrangians_val[-3][1] + t_half = aug_lagrangians_val[-2][1] + t1 = aug_lagrangians_val[-1][1] + + # if the validation loss went up and down, do not update lagrangian and penalty coefficients. + if not (min(t0, t1) < t_half < max(t0, t1)): + delta_lambda = -np.inf + else: + delta_lambda = (t1 - t0) / self.stop_crit_win + else: + delta_lambda = -np.inf # do not update lambda nor mu + + # Does the augmented lagrangian converged? + if h > self.h_threshold: + # if we have found a stationary point of the augmented loss + if abs(delta_lambda) < self.omega_lambda or delta_lambda > 0: + lamb += mu * h.item() + + # Did the constraint improve sufficiently? + hs.append(h.item()) + if len(hs) >= 2: + if hs[-1] > hs[-2] * self.omega_mu: + mu *= 10 + + # little hack to make sure the moving average is going down. + with torch.no_grad(): + gap_in_not_nll = 0.5 * mu * h.item() ** 2 + \ + lamb * h.item() - not_nlls[-1] + aug_lagrangian_ma[iter + 1] += gap_in_not_nll + aug_lagrangians_val[-1][1] += gap_in_not_nll + + if self.optimizer == "rmsprop": + optimizer = torch.optim.RMSprop(self.model.parameters(), + lr=self.lr) + else: + optimizer = torch.optim.SGD(self.model.parameters(), + lr=self.lr) + else: + # Final clamping of all edges == 0 + with torch.no_grad(): + to_keep = (w_adj > 0).type(torch.Tensor) + self.model.adjacency *= to_keep - # Normalize data - self.mean, self.std = mean, std - if normalize: - if not mean or not std: - self.mean = torch.mean(self.data_set, 0, keepdim=True) - self.std = torch.std(self.data_set, 0, keepdim=True) - self.data_set = (self.data_set - self.mean) / self.std - self.n_samples = self.data_set.size(0) + return self.model - def sample(self, batch_size): - """sampling from self.dataset + def _to_dag(self, train_data, test_data): + """ + 1- If some entries of A_\phi == 0, also mask them + (This can happen with stochastic proximal gradient descent) + 2- Remove edges (from weaker to stronger) until a DAG is obtained. Parameters ---------- - batch_size : int - batch size of sample - - Returns - ------- - samples : torch.Tensor - sample data after sampling - torch.ones_like(samples): torch.Tensor + train_data : NormalizationData + train samples + test_data : NormalizationData + test samples for validation """ - sample_idxs = self.random.choice(np.arange(int(self.n_samples)), - size=(int(batch_size),), - replace=False) - samples = self.data_set[torch.as_tensor(sample_idxs).long()] - - return samples, torch.ones_like(samples) - - -def pns_(model_adj, all_samples, num_neighbors, thresh): - """Preliminary neighborhood selection - - Parameters - ---------- - model_adj : numpy.ndarray - adjacency matrix, all element is 1 - all_samples:numpy.ndarray - 2 dimensional array include all samples - num_neighbors: integer - variable number or neighbors number you want - thresh: float - apply for sklearn.feature_selection.SelectFromModel - - Returns - ------- - model_adj : numpy.ndarray - adjacency matrix, after pns process - """ - - num_nodes = all_samples.shape[1] - - for node in range(num_nodes): - x_other = np.copy(all_samples) - x_other[:, node] = 0 - extraTree = ExtraTreesRegressor(n_estimators=500) - extraTree.fit(x_other, all_samples[:, node]) - selected_reg = SelectFromModel(extraTree, - threshold="{}*mean".format(thresh), - prefit=True, - max_features=num_neighbors) - mask_selected = selected_reg.get_support(indices=False) - model_adj[:, node] *= mask_selected - return model_adj + self.model.eval() - -def pns(model, all_samples, num_neighbors, thresh, learning_path): + if self.jac_thresh: + A = compute_jacobian_avg(self.model, train_data, + train_data.n_samples).t() + else: + A = self.model.get_w_adj() + A = A.detach().cpu().numpy() + + with torch.no_grad(): + # Find the smallest threshold that removes all cycle-inducing edges + thresholds = np.unique(A) + epsilon = 1e-8 + for step, t in enumerate(thresholds): + to_keep = torch.Tensor(A > t + epsilon) + new_adj = self.model.adjacency * to_keep + if is_acyclic(new_adj): + self.model.adjacency.copy_(new_adj) + break + + # evaluate on validation set + x, _ = test_data.sample(test_data.n_samples) + weights, biases, extra_params = self.model.get_parameters(mode="wbx") + nll_validation = - torch.mean(self.model.compute_log_likelihood(x, weights, + biases, + extra_params)).item() + + return self.model + + +def neighbors_selection(model, all_samples, num_neighbors, thresh): """ Preliminary neighborhood selection After pns, just model.adjacency is changed. if nodes > 50, use it. @@ -464,289 +530,52 @@ def pns(model, all_samples, num_neighbors, thresh, learning_path): variable number or neighbors number you want thresh: float apply for sklearn.feature_selection.SelectFromModel - learning_path: str - save model after pns + Returns ------- out: model """ - # Prepare path for saving results - - save_path = os.path.join(learning_path, "pns") - if not os.path.exists(save_path): - os.makedirs(save_path) - - # Check if already computed - if os.path.exists(os.path.join(save_path, "pns_adjacency.npy")): - return Accessor.load(save_path, "pns_model.pkl") model_adj = model.adjacency.detach().cpu().numpy() - model_adj = pns_(model_adj, all_samples, num_neighbors, thresh) + model_adj = _pns(model_adj, all_samples, num_neighbors, thresh) with torch.no_grad(): model.adjacency.copy_(torch.Tensor(model_adj)) - # save model as model.pkl after pns - Accessor.dump_pkl(model, save_path, 'pns_model') - Accessor.dump_npy(model_adj, save_path, 'pns_adjacency') - return model -def train(model, train_data, test_data, params): - """ - Applying augmented Lagrangian to solve the continuous constrained problem. - - Parameters - ---------- - model: model object - train_data: NormalizationData object - test_data: NormalizationData object - params: Parameters object - include all parameters you need in this algorithms - - Returns - ------- - out: model self - """ - - # Prepare path for saving results - save_path = os.path.join(params.learning_path, "train") - if not os.path.exists(save_path): - os.makedirs(save_path) - - # Check if already computed - if os.path.exists(os.path.join(save_path, "train_DAG.npy")): - return Accessor.load(save_path, "train_model.pkl") - - # initialize stuff for learning loop - aug_lagrangians = [] - aug_lagrangian_ma = [0.0] * (params.iterations + 1) - aug_lagrangians_val = [] - grad_norms = [] - grad_norm_ma = [0.0] * (params.iterations + 1) - - w_adjs = np.zeros((params.iterations, - params.input_dim, - params.input_dim), dtype=np.float32) - - hs = [] - not_nlls = [] # Augmented Lagrangian minus (pseudo) NLL - nlls = [] # NLL on train - nlls_val = [] # NLL on validation - - # Augmented Lagrangian stuff - mu = params.mu_init - lamb = params.lambda_init - mus = [] - lambdas = [] - - if params.optimizer == "sgd": - optimizer = torch.optim.SGD(model.parameters(), lr=params.lr) - elif params.optimizer == "rmsprop": - optimizer = torch.optim.RMSprop(model.parameters(), lr=params.lr) - else: - raise NotImplementedError("optimizer {} is not implemented" - .format(params.optimizer)) - - # Learning loop: - for iter in range(params.iterations): - # compute loss - model.train() - x, _ = train_data.sample(params.batch_size) - # Initialize weights and bias - weights, biases, extra_params = model.get_parameters(mode="wbx") - loss = - torch.mean(model.compute_log_likelihood(x, weights, biases, extra_params)) - nlls.append(loss.item()) - model.eval() - - # constraint related - w_adj = model.get_w_adj() - h = compute_constraint(model, w_adj) - - # compute augmented Lagrangian - aug_lagrangian = loss + 0.5 * mu * h ** 2 + lamb * h - - # optimization step on augmented lagrangian - optimizer.zero_grad() - aug_lagrangian.backward() - optimizer.step() - - # clamp edges - if params.edge_clamp_range != 0: - with torch.no_grad(): - to_keep = (w_adj > params.edge_clamp_range) * 1 - model.adjacency *= to_keep - - # logging - w_adjs[iter, :, :] = w_adj.detach().cpu().numpy().astype(np.float32) - mus.append(mu) - lambdas.append(lamb) - not_nlls.append(0.5 * mu * h.item() ** 2 + lamb * h.item()) - - # compute augmented lagrangian moving average - aug_lagrangians.append(aug_lagrangian.item()) - aug_lagrangian_ma[iter + 1] = aug_lagrangian_ma[iter] + \ - 0.01 * (aug_lagrangian.item() - - aug_lagrangian_ma[iter]) - grad_norms.append(model.get_grad_norm("wbx").item()) - grad_norm_ma[iter + 1] = grad_norm_ma[iter] + \ - 0.01 * (grad_norms[-1] - grad_norm_ma[iter]) - - # compute loss on whole validation set - if iter % params.stop_crit_win == 0: - with torch.no_grad(): - x, _ = test_data.sample(test_data.n_samples) - loss_val = - torch.mean(model.compute_log_likelihood(x, - weights, - biases, - extra_params)) - nlls_val.append(loss_val.item()) - aug_lagrangians_val.append([iter, loss_val + not_nlls[-1]]) - - # compute delta for lambda - if iter >= 2 * params.stop_crit_win \ - and iter % (2 * params.stop_crit_win) == 0: - t0 = aug_lagrangians_val[-3][1] - t_half = aug_lagrangians_val[-2][1] - t1 = aug_lagrangians_val[-1][1] - - # if the validation loss went up and down, do not update lagrangian and penalty coefficients. - if not (min(t0, t1) < t_half < max(t0, t1)): - delta_lambda = -np.inf - else: - delta_lambda = (t1 - t0) / params.stop_crit_win - else: - delta_lambda = -np.inf # do not update lambda nor mu - - # Does the augmented lagrangian converged? - if h > params.h_threshold: - # if we have found a stationary point of the augmented loss - if abs(delta_lambda) < params.omega_lambda or delta_lambda > 0: - lamb += mu * h.item() - - # Did the constraint improve sufficiently? - hs.append(h.item()) - if len(hs) >= 2: - if hs[-1] > hs[-2] * params.omega_mu: - mu *= 10 - - # little hack to make sure the moving average is going down. - with torch.no_grad(): - gap_in_not_nll = 0.5 * mu * h.item() ** 2 + lamb * h.item() - not_nlls[-1] - aug_lagrangian_ma[iter + 1] += gap_in_not_nll - aug_lagrangians_val[-1][1] += gap_in_not_nll - - if params.optimizer == "rmsprop": - optimizer = torch.optim.RMSprop(model.parameters(), - lr=params.lr) - else: - optimizer = torch.optim.SGD(model.parameters(), - lr=params.lr) - else: - # Final clamping of all edges == 0 - with torch.no_grad(): - to_keep = (w_adj > 0).type(torch.Tensor) - model.adjacency *= to_keep - - # compute nll on train and validation set - weights, biases, extra_params = model.get_parameters(mode="wbx") - x, _ = train_data.sample(train_data.n_samples) - # Since we do not have a DAG yet, this is not really a negative log likelihood. - nll_train = - torch.mean(model.compute_log_likelihood(x, weights, - biases, extra_params)) - x, _ = test_data.sample(test_data.n_samples) - nll_validation = - torch.mean(model.compute_log_likelihood(x, weights, - biases, extra_params)) - # Save - w_adjs = w_adjs[:iter] - Accessor.dump_pkl(model, save_path, 'train_model') - Accessor.dump_pkl(params, save_path, 'params') - if params.input_dim <= 50: - Accessor.dump_pkl(w_adjs, save_path, 'w_adjs') - Accessor.dump_pkl(nll_train, save_path, 'pseudo_nll_train') - Accessor.dump_pkl(nll_validation, save_path, 'pseudo_nll_validation') - Accessor.dump_pkl(not_nlls, save_path, 'not_nlls') - Accessor.dump_pkl(aug_lagrangians, save_path, 'aug_lagrangians') - Accessor.dump_pkl(aug_lagrangian_ma[:iter], save_path, 'aug_lagrangian_ma') - Accessor.dump_pkl(aug_lagrangians_val, save_path, 'aug_lagrangians_val') - Accessor.dump_pkl(grad_norms, save_path, 'grad_norms') - Accessor.dump_pkl(grad_norm_ma[:iter], save_path, 'grad_norm_ma') - np.save(os.path.join(save_path, "train_DAG.npy"), - model.adjacency.detach().cpu().numpy()) - - return model - - -def to_dag(model, train_data, test_data, params, stage_name='to_dag'): - """ - 1- If some entries of A_\phi == 0, also mask them - (This can happen with stochastic proximal gradient descent) - 2- Remove edges (from weaker to stronger) until a DAG is obtained. +def _pns(model_adj, all_samples, num_neighbors, thresh): + """Preliminary neighborhood selection Parameters ---------- - model : model class - NonlinearGauss or NonlinearGaussANM - train_data : NormalizationData - training data - test_data : NormalizationData - test data - params : Parameters - Parameters class include all parameters - stage_name : str - name of folder for saving data after to_dag process + model_adj : numpy.ndarray + adjacency matrix, all element is 1 + all_samples:numpy.ndarray + 2 dimensional array include all samples + num_neighbors: integer + variable number or neighbors number you want + thresh: float + apply for sklearn.feature_selection.SelectFromModel Returns ------- - out : model + model_adj : numpy.ndarray + adjacency matrix, after pns process """ - # Prepare path for saving results - save_path = os.path.join(params.learning_path, stage_name) - if not os.path.exists(save_path): - os.makedirs(save_path) - - # Check if already computed - if os.path.exists(os.path.join(save_path, "infer_DAG.npy")): - return Accessor.load(save_path, "dag_model.pkl") - - model.eval() - - if params.jac_thresh: - A = compute_jacobian_avg(model, train_data, train_data.n_samples).t() - else: - A = model.get_w_adj() - A = A.detach().cpu().numpy() - - with torch.no_grad(): - # Find the smallest threshold that removes all cycle-inducing edges - thresholds = np.unique(A) - epsilon = 1e-8 - for step, t in enumerate(thresholds): - to_keep = torch.Tensor(A > t + epsilon) - new_adj = model.adjacency * to_keep - if is_acyclic(new_adj): - model.adjacency.copy_(new_adj) - break - - # evaluate on validation set - x, _ = test_data.sample(test_data.n_samples) - weights, biases, extra_params = model.get_parameters(mode="wbx") - nll_validation = - torch.mean(model.compute_log_likelihood(x, weights, - biases, extra_params)).item() - # Compute SHD and SID metrics - pred_adj_ = model.adjacency.detach().cpu().numpy() - train_adj_ = train_data.adjacency.detach().cpu().numpy() - - model.metrics = MetricsDAG(pred_adj_, train_adj_).metrics - del train_adj_, pred_adj_ - - # Save - Accessor.dump_pkl(model, save_path, 'dag_model') - Accessor.dump_pkl(params, save_path, 'params') - Accessor.dump_pkl(nll_validation, save_path, "nll_validation", txt=True) - np.save(os.path.join(save_path, "infer_DAG"), - model.adjacency.detach().cpu().numpy()) + num_nodes = all_samples.shape[1] - return model + for node in range(num_nodes): + x_other = np.copy(all_samples) + x_other[:, node] = 0 + extraTree = ExtraTreesRegressor(n_estimators=500) + extraTree.fit(x_other, all_samples[:, node]) + selected_reg = SelectFromModel(extraTree, + threshold="{}*mean".format(thresh), + prefit=True, + max_features=num_neighbors) + mask_selected = selected_reg.get_support(indices=False) + model_adj[:, node] *= mask_selected + return model_adj diff --git a/gcastle/castle/algorithms/gradient/gran_dag/utils/__init__.py b/gcastle/castle/algorithms/gradient/gran_dag/utils/__init__.py deleted file mode 100644 index 3c97f92b..00000000 --- a/gcastle/castle/algorithms/gradient/gran_dag/utils/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .save import Accessor \ No newline at end of file diff --git a/gcastle/castle/algorithms/gradient/gran_dag/utils/save.py b/gcastle/castle/algorithms/gradient/gran_dag/utils/save.py deleted file mode 100644 index 84f04cca..00000000 --- a/gcastle/castle/algorithms/gradient/gran_dag/utils/save.py +++ /dev/null @@ -1,66 +0,0 @@ -# coding=utf-8 -# Copyright (C) 2021. Huawei Technologies Co., Ltd. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import pickle -import uuid -import numpy as np -import pandas as pd - -class Accessor(object): - """ - accessor - """ - - @staticmethod - def dump_pkl(obj, path, name, txt=False): - if not txt: - with open(os.path.join(path, name + ".pkl"), "wb") as f: - pickle.dump(obj, f) - else: - with open(os.path.join(path, name + ".txt"), "w") as f: - f.write(str(obj)) - - @staticmethod - def dump_npy(array, path, name): - - save_path = os.path.join(path, name) - np.save(save_path, array) - del save_path - - @staticmethod - def load(path, name): - with open(os.path.join(path, name), "rb") as f: - obj = pickle.load(f) - return obj - - @staticmethod - def np_to_csv(array, save_path): - """ - Convert np array to .csv - - array: numpy array - the numpy array to convert to csv - save_path: str - where to temporarily save the csv - Return the path to the csv file - """ - id = str(uuid.uuid4()) - output = os.path.join(os.path.dirname(save_path), 'tmp_' + id + '.csv') - - df = pd.DataFrame(array) - df.to_csv(output, header=False, index=False) - - return output \ No newline at end of file diff --git a/gcastle/castle/algorithms/gradient/graph_auto_encoder/gae.py b/gcastle/castle/algorithms/gradient/graph_auto_encoder/gae.py index 974db46d..03e45d86 100644 --- a/gcastle/castle/algorithms/gradient/graph_auto_encoder/gae.py +++ b/gcastle/castle/algorithms/gradient/graph_auto_encoder/gae.py @@ -22,55 +22,54 @@ from castle.common import BaseLearner, Tensor -class Parameters(object): - def __init__( - self, seed:'int' = 1230, - x_dim:'int' = 1, - num_encoder_layers:'int' = 1, - num_decoder_layers:'int' = 1, - hidden_size:'int' = 4, - latent_dim:'int' = 1, - l1_graph_penalty:'float' = 0.0, - use_float64:'bool' = False, - learning_rate:'float' = 1e-3, - max_iter:'int' = 10, - iter_step:'int' = 3000, - init_iter:'int' = 3, - h_tol:'float' = 1e-8, - init_rho:'float' = 1.0, - rho_thres:'float' = 1e+30, - h_thres:'float' = 0.25, - rho_multiply:'float' = 2.0, - early_stopping:'bool' = False, - early_stopping_thres:'float' = 1.0, - graph_thres:'float' = 0.3): - self.seed=seed - self.x_dim=x_dim - self.num_encoder_layers=num_encoder_layers - self.num_decoder_layers=num_decoder_layers - self.hidden_size=hidden_size - self.latent_dim=latent_dim - self.l1_graph_penalty=l1_graph_penalty - self.use_float64=use_float64 - self.learning_rate=learning_rate - self.max_iter=max_iter - self.iter_step=iter_step - self.init_iter=init_iter - self.h_tol=h_tol - self.init_rho=init_rho - self.rho_thres=rho_thres - self.h_thres=h_thres - self.rho_multiply=rho_multiply - self.early_stopping=early_stopping - self.early_stopping_thres=early_stopping_thres - self.graph_thres=graph_thres - - class GAE(BaseLearner): """ GAE Algorithm. A classic causal discovery algorithm based on conditional independence tests. + Parameters + ---------- + seed : int + Reproducibility, must be int + x_dim: int + Dimension of vector for X + num_encoder_layers: int + Number of hidden layers for encoder + num_decoder_layers: int + Number of hidden layers for decoder + hidden_size: int + Hidden size for NN layers + latent_dim: int + Latent dimension for autoencoder + l1_graph_penalty: float + L1 penalty for sparse graph. Set to 0 to disable + use_float64: bool + Whether to use tf.float64 or tf.float32 during training + learning_rate: float + Learning rate + max_iter: int + Number of iterations for optimization problem + iter_step: int + Number of steps for each iteration + init_iter: int + Initial iteration to disallow early stopping + h_tol: float + Tolerance of optimization problem + init_rho: float + Initial value for rho + rho_thres: float + Threshold for rho + h_thres: float + Threshold for h + rho_multiply: float + Multiplication to amplify rho each time + early_stopping: bool + Whether to use early stopping + early_stopping_thres: float + Threshold ratio for early stopping + graph_thres: float + Threshold to filter out small values in graph + Attributes ---------- causal_matrix : numpy.ndarray @@ -87,19 +86,60 @@ class GAE(BaseLearner): >>> from castle.common import GraphDAG >>> from castle.metrics import MetricsDAG >>> true_dag, X = load_dataset(name='iid_test') - >>> n = GAE() - >>> n.learn(X, num_encoder_layers=2, num_decoder_layers=2, hidden_size=16, + >>> n = GAE(num_encoder_layers=2, num_decoder_layers=2, hidden_size=16, max_iter=20, h_tol=1e-12, iter_step=300, rho_thres=1e20, rho_multiply=10, graph_thres=0.2, l1_graph_penalty=1.0, init_iter=5, use_float64=True) + >>> n.learn(X) >>> GraphDAG(n.causal_matrix, true_dag) >>> met = MetricsDAG(n.causal_matrix, true_dag) >>> print(met.metrics) """ - def __init__(self): + def __init__(self, seed:'int' = 1230, + x_dim:'int' = 1, + num_encoder_layers:'int' = 1, + num_decoder_layers:'int' = 1, + hidden_size:'int' = 4, + latent_dim:'int' = 1, + l1_graph_penalty:'float' = 0.0, + use_float64:'bool' = False, + learning_rate:'float' = 1e-3, + max_iter:'int' = 10, + iter_step:'int' = 3000, + init_iter:'int' = 3, + h_tol:'float' = 1e-8, + init_rho:'float' = 1.0, + rho_thres:'float' = 1e+30, + h_thres:'float' = 0.25, + rho_multiply:'float' = 2.0, + early_stopping:'bool' = False, + early_stopping_thres:'float' = 1.0, + graph_thres:'float' = 0.3): + super().__init__() - def learn(self, data, **kwargs): + self.seed = seed + self.x_dim = x_dim + self.num_encoder_layers = num_encoder_layers + self.num_decoder_layers = num_decoder_layers + self.hidden_size = hidden_size + self.latent_dim = latent_dim + self.l1_graph_penalty = l1_graph_penalty + self.use_float64 = use_float64 + self.learning_rate = learning_rate + self.max_iter = max_iter + self.iter_step = iter_step + self.init_iter = init_iter + self.h_tol = h_tol + self.init_rho = init_rho + self.rho_thres = rho_thres + self.h_thres = h_thres + self.rho_multiply = rho_multiply + self.early_stopping = early_stopping + self.early_stopping_thres = early_stopping_thres + self.graph_thres = graph_thres + + def learn(self, data): """ Set up and run the GAE algorithm. @@ -108,10 +148,7 @@ def learn(self, data, **kwargs): data: castle.Tensor or numpy.ndarray The castle.Tensor or numpy.ndarray format data you want to learn. """ - opt = Parameters() - for k in kwargs: - opt.__dict__[k] = kwargs[k] - + if isinstance(data, np.ndarray): X = data elif isinstance(data, Tensor): @@ -121,17 +158,17 @@ def learn(self, data, **kwargs): 'Tensor or numpy.ndarray, but got {}' .format(type(data))) - opt.n, opt.d = X.shape[:2] + self.n, self.d = X.shape[:2] if X.ndim == 2: - X = np.reshape(X,(opt.n, opt.d, 1)) + X = np.reshape(X,(self.n, self.d, 1)) elif X.ndim == 3: - opt.x_dim = X.shape[2] + self.x_dim = X.shape[2] X = X - causal_matrix = self._gae(X, opt) + causal_matrix = self._gae(X) self.causal_matrix = causal_matrix - def _gae(self, X, opt): + def _gae(self, X): """ Starting model of GAE. @@ -139,25 +176,23 @@ def _gae(self, X, opt): ---------- X: numpy.ndarray The numpy.ndarray format data you want to learn. - opt: dict - The parameters dict for gae. """ - set_seed(opt.seed) + set_seed(self.seed) - model = GAEModel(opt.n, opt.d, opt.x_dim, opt.seed, opt.num_encoder_layers, - opt.num_decoder_layers, opt.hidden_size, opt.latent_dim, - opt.l1_graph_penalty, opt.use_float64) + model = GAEModel(self.n, self.d, self.x_dim, self.seed, self.num_encoder_layers, + self.num_decoder_layers, self.hidden_size, self.latent_dim, + self.l1_graph_penalty, self.use_float64) - trainer = ALTrainer(opt.init_rho, opt.rho_thres, opt.h_thres, - opt.rho_multiply, opt.init_iter, opt.learning_rate, - opt.h_tol, opt.early_stopping, - opt.early_stopping_thres) + trainer = ALTrainer(self.init_rho, self.rho_thres, self.h_thres, + self.rho_multiply, self.init_iter, self.learning_rate, + self.h_tol, self.early_stopping, + self.early_stopping_thres) - W_est = trainer.train(model, X, opt.graph_thres, opt.max_iter, - opt.iter_step) + W_est = trainer.train(model, X, self.graph_thres, self.max_iter, + self.iter_step) W_est = W_est / np.max(np.abs(W_est)) - W_est[np.abs(W_est) < opt.graph_thres] = 0 + W_est[np.abs(W_est) < self.graph_thres] = 0 return (W_est != 0).astype(int) diff --git a/gcastle/castle/algorithms/gradient/masked_csl/mcsl.py b/gcastle/castle/algorithms/gradient/masked_csl/mcsl.py index e659119a..ebf7d0a1 100644 --- a/gcastle/castle/algorithms/gradient/masked_csl/mcsl.py +++ b/gcastle/castle/algorithms/gradient/masked_csl/mcsl.py @@ -28,55 +28,50 @@ os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' -class Parameters(object): - def __init__( - # other settings - self, use_gpu:'bool' = False, - seed: 'int' = 1230, - graph_thres: 'float' = 0.5, - # model parameters - model_type:'str' = 'MaskedNN', - num_hidden_layers:'int' = 4, - hidden_size:'int'=16, - l1_graph_penalty:'float' = 2e-3, - use_float64:'bool' = False, - # training parameters - learning_rate:'float' = 3e-2, - max_iter:'int' = 25, - iter_step:'int' = 1000, - init_iter:'int' = 2, - h_tol:'float' = 1e-10, - init_rho:'float' = 1e-5, - rho_thres:'float' = 1e14, - h_thres:'float' = 0.25, - rho_multiply:'float' = 10, - temperature:'float' = 0.2 - ): - self.seed = seed - self.use_gpu = use_gpu - self.graph_thres=graph_thres - self.model_type=model_type - self.num_hidden_layers=num_hidden_layers - self.hidden_size=hidden_size - self.l1_graph_penalty=l1_graph_penalty - self.use_float64=use_float64 - self.learning_rate=learning_rate - self.max_iter=max_iter - self.iter_step=iter_step - self.init_iter=init_iter - self.h_tol=h_tol - self.init_rho=init_rho - self.rho_thres=rho_thres - self.h_thres=h_thres - self.rho_multiply=rho_multiply - self.temperature=temperature - - class MCSL(BaseLearner): """ MCSL Algorithm. A classic causal discovery algorithm based on conditional independence tests. + Parameters + ---------- + use_gpu: bool + Whether or not to use GPU + seed: int + Reproducibility + graph_thres: float + Threshold to filter out small values in graph + model_type: str + Model type to use [MaskedNN, MaskedQuadraticRegression] + num_hidden_layers: int + Number of hidden layers for NN + hidden_size: int + Hidden size for NN layers + l1_graph_penalty: float + L1 penalty for sparse graph. Set to 0 to disable + use_float64: bool + Whether to use tf.float64 or tf.float32 during training + learning_rate: float + Learning rate + max_iter: int + Number of iterations for optimization problem + iter_step: int + Number of steps for each iteration + init_iter: int + Initial iteration to disallow early stopping + h_tol: float + Tolerance of optimization problem + init_rho: float + Initial value for rho + rho_thres: float + Threshold for rho + h_thres: float + Threshold for h + rho_multiply: float + Multiplication to amplify rho each time + temperature: float + Temperature for gumbel sigmoid + Attributes ---------- causal_matrix : numpy.ndarray @@ -93,19 +88,44 @@ class MCSL(BaseLearner): >>> from castle.common import GraphDAG >>> from castle.metrics import MetricsDAG >>> true_dag, X = load_dataset(name='iid_test') - >>> n = MCSL() - >>> n.learn(X, iter_step=1000, rho_thres=1e14, init_rho=1e-5, - rho_multiply=10, graph_thres=0.5, l1_graph_penalty=2e-3, - degree=2, use_float64=False) + >>> n = MCSL(iter_step=1000, rho_thres=1e14, init_rho=1e-5, + rho_multiply=10, graph_thres=0.5, l1_graph_penalty=2e-3, + use_float64=False) + >>> n.learn(X) >>> GraphDAG(n.causal_matrix, true_dag) >>> met = MetricsDAG(n.causal_matrix, true_dag) >>> print(met.metrics) """ - def __init__(self): + def __init__(self, use_gpu=False, seed=1230, graph_thres=0.5, + model_type='MaskedNN', num_hidden_layers=4, hidden_size=16, + l1_graph_penalty=2e-3, use_float64=False, learning_rate=3e-2, + max_iter=25, iter_step=1000, init_iter=2, h_tol=1e-10, + init_rho=1e-5, rho_thres=1e14, h_thres=0.25, rho_multiply=10, + temperature=0.2): + super().__init__() - - def learn(self, data, **kwargs): + + self.use_gpu = use_gpu + self.seed = seed + self.graph_thres = graph_thres + self.model_type = model_type + self.num_hidden_layers = num_hidden_layers + self.hidden_size = hidden_size + self.l1_graph_penalty = l1_graph_penalty + self.use_float64 = use_float64 + self.learning_rate = learning_rate + self.max_iter = max_iter + self.iter_step = iter_step + self.init_iter = init_iter + self.h_tol = h_tol + self.init_rho = init_rho + self.rho_thres = rho_thres + self.h_thres = h_thres + self.rho_multiply = rho_multiply + self.temperature = temperature + + def learn(self, data): """ Set up and run the MCSL algorithm. @@ -114,9 +134,6 @@ def learn(self, data, **kwargs): data: castle.Tensor or numpy.ndarray The castle.Tensor or numpy.ndarray format data you want to learn. """ - opt = Parameters() - for k in kwargs: - opt.__dict__[k] = kwargs[k] if isinstance(data, np.ndarray): X = data @@ -127,13 +144,13 @@ def learn(self, data, **kwargs): 'Tensor or numpy.ndarray, but got {}' .format(type(data))) - opt.n, opt.d = X.shape + self.n, self.d = X.shape pns_mask = np.ones([X.shape[1], X.shape[1]]) - causal_matrix = self._mcsl(X, pns_mask, opt) + causal_matrix = self._mcsl(X, pns_mask) self.causal_matrix = causal_matrix - def _mcsl(self, X, pns_mask, opt): + def _mcsl(self, X, pns_mask): """ Starting model of MCSL. @@ -143,27 +160,25 @@ def _mcsl(self, X, pns_mask, opt): The numpy.ndarray format data you want to learn. pns_mask: numpy.ndarray The mask matrix. - opt: dict - The parameters dict for mcsl. """ - set_seed(opt.seed) + set_seed(self.seed) - if opt.model_type == 'MaskedNN': + if self.model_type == 'MaskedNN': Model = MaskedNN - elif opt.model_type == 'MaskedQuadraticRegression': + elif self.model_type == 'MaskedQuadraticRegression': Model = MaskedQuadraticRegression - model = Model(opt.n, opt.d, pns_mask, opt.num_hidden_layers, - opt.hidden_size, opt.l1_graph_penalty, opt.learning_rate, - opt.seed, opt.use_float64, opt.use_gpu) + model = Model(self.n, self.d, pns_mask, self.num_hidden_layers, + self.hidden_size, self.l1_graph_penalty, self.learning_rate, + self.seed, self.use_float64, self.use_gpu) - trainer = ALTrainer(opt.init_rho, opt.rho_thres, opt.h_thres, - opt.rho_multiply, opt.init_iter, opt.h_tol, - opt.temperature) + trainer = ALTrainer(self.init_rho, self.rho_thres, self.h_thres, + self.rho_multiply, self.init_iter, self.h_tol, + self.temperature) - W_logits = trainer.train(model, X, opt.max_iter, opt.iter_step) + W_logits = trainer.train(model, X, self.max_iter, self.iter_step) - W_est = callback_after_training(W_logits, opt.temperature, opt.graph_thres) + W_est = callback_after_training(W_logits, self.temperature, self.graph_thres) return W_est diff --git a/gcastle/castle/algorithms/gradient/masked_csl/models/masked_nn.py b/gcastle/castle/algorithms/gradient/masked_csl/models/masked_nn.py index c7b96736..6b73a949 100644 --- a/gcastle/castle/algorithms/gradient/masked_csl/models/masked_nn.py +++ b/gcastle/castle/algorithms/gradient/masked_csl/models/masked_nn.py @@ -13,14 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging from tensorflow.keras.layers import Dense, LeakyReLU - from .masked_model import MaskedModel class MaskedNN(MaskedModel): - _logger = logging.getLogger(__name__) def _forward(self, x): for _ in range(self.num_hidden_layers): # Hidden layer diff --git a/gcastle/castle/algorithms/gradient/masked_csl/models/masked_quadratic_regression.py b/gcastle/castle/algorithms/gradient/masked_csl/models/masked_quadratic_regression.py index a1a38923..10d5a649 100644 --- a/gcastle/castle/algorithms/gradient/masked_csl/models/masked_quadratic_regression.py +++ b/gcastle/castle/algorithms/gradient/masked_csl/models/masked_quadratic_regression.py @@ -13,7 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging import numpy as np import tensorflow as tf @@ -28,7 +27,6 @@ class MaskedQuadraticRegression(MaskedModel): - https://www.digitalocean.com/community/tutorials/understanding-class-inheritance-in-python-3 - https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/2_BasicModels/linear_regression.py """ - _logger = logging.getLogger(__name__) def _forward(self, x): # x is of shape (n, d - 1) diff --git a/gcastle/castle/algorithms/gradient/notears/linear.py b/gcastle/castle/algorithms/gradient/notears/linear.py index be718ed1..56f057df 100644 --- a/gcastle/castle/algorithms/gradient/notears/linear.py +++ b/gcastle/castle/algorithms/gradient/notears/linear.py @@ -21,19 +21,37 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging import numpy as np import scipy.optimize as sopt -from loguru import logger from scipy.special import expit as sigmoid from castle.common import BaseLearner, Tensor +logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s') + + class Notears(BaseLearner): """ Notears Algorithm. A classic causal discovery algorithm based on conditional independence tests. + Parameters + ---------- + lambda1: float + l1 penalty parameter + loss_type: str + l2, logistic, poisson + max_iter: int + max num of dual ascent steps + h_tol: float + exit if |h(w_est)| <= htol + rho_max: float + exit if rho >= rho_max + w_threshold: float + drop edge if |weight| < threshold + Attributes ---------- causal_matrix : numpy.ndarray @@ -57,10 +75,22 @@ class Notears(BaseLearner): >>> print(met.metrics) """ - def __init__(self): + def __init__(self, lambda1=0.1, + loss_type='l2', + max_iter=100, + h_tol=1e-8, + rho_max=1e+16, + w_threshold=0.3): super().__init__() + self.lambda1 = lambda1 + self.loss_type = loss_type + self.max_iter = max_iter + self.h_tol = h_tol + self.rho_max = rho_max + self.w_threshold = w_threshold + def learn(self, data): """ Set up and run the Notears algorithm. @@ -79,11 +109,16 @@ def learn(self, data): 'Tensor or numpy.ndarray, but got {}' .format(type(data))) - causal_matrix = self.notears_linear(X) + causal_matrix = self.notears_linear(X, lambda1=self.lambda1, + loss_type=self.loss_type, + max_iter=self.max_iter, + h_tol=self.h_tol, + rho_max=self.rho_max, + w_threshold=self.w_threshold) self.causal_matrix = causal_matrix - def notears_linear(self, X, lambda1=0.1, loss_type='l2', max_iter=100, h_tol=1e-8, - rho_max=1e+16, w_threshold=0.3): + def notears_linear(self, X, lambda1, loss_type, max_iter, h_tol, + rho_max, w_threshold): """ Solve min_W L(W; X) + lambda1 ‖W‖_1 s.t. h(W) = 0 using augmented Lagrangian. @@ -92,18 +127,6 @@ def notears_linear(self, X, lambda1=0.1, loss_type='l2', max_iter=100, h_tol=1e- ---------- X: np.ndarray n*d sample matrix - lambda1: float - l1 penalty parameter - loss_type: str - l2, logistic, poisson - max_iter: int - max num of dual ascent steps - h_tol: float - exit if |h(w_est)| <= htol - rho_max: float - exit if rho >= rho_max - w_threshold: float - drop edge if |weight| < threshold Return ------ @@ -169,7 +192,7 @@ def _func(w): if loss_type == 'l2': X = X - np.mean(X, axis=0, keepdims=True) - logger.info('[start]: n={}, d={}, iter_={}, h_={}, rho_={}'.format( \ + logging.info('[start]: n={}, d={}, iter_={}, h_={}, rho_={}'.format( \ n, d, max_iter, h_tol, rho_max)) for i in range(max_iter): @@ -180,7 +203,7 @@ def _func(w): w_new = sol.x h_new, _ = _h(_adj(w_new)) - logger.debug( + logging.info( '[iter {}] h={:.3e}, loss={:.3f}, rho={:.1e}'.format( \ i, h_new, _func(w_est)[0], rho)) @@ -197,6 +220,6 @@ def _func(w): W_est = _adj(w_est) W_est[np.abs(W_est) < w_threshold] = 0 - logger.info('FINISHED') + logging.info('FINISHED') return (W_est != 0).astype(int) diff --git a/gcastle/castle/algorithms/gradient/rl/rl.py b/gcastle/castle/algorithms/gradient/rl/rl.py index 83d8f2ee..f297016e 100644 --- a/gcastle/castle/algorithms/gradient/rl/rl.py +++ b/gcastle/castle/algorithms/gradient/rl/rl.py @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging import platform import numpy as np import matplotlib.pyplot as plt import tensorflow as tf -from loguru import logger from .data_loader import DataGenerator_read_data from .models import Actor @@ -32,6 +32,9 @@ from castle.metrics import MetricsDAG +logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s') + + class RL(BaseLearner): """ RL Algorithm. @@ -53,17 +56,23 @@ class RL(BaseLearner): >>> from castle.common import GraphDAG >>> from castle.metrics import MetricsDAG >>> true_dag, X = load_dataset(name='iid_test') - >>> n = RL() - >>> n.learn(X, dag=true_dag, lambda_flag_default=True) + >>> n = RL(lambda_flag_default=True) + >>> n.learn(X, dag=true_dag) >>> GraphDAG(n.causal_matrix, true_dag) >>> met = MetricsDAG(n.causal_matrix, true_dag) >>> print(met.metrics) """ - def __init__(self): + def __init__(self, **kwargs): super().__init__() - def learn(self, data, **kwargs): + config, _ = get_config() + for k in kwargs: + config.__dict__[k] = kwargs[k] + + self.config = config + + def learn(self, data, dag=None): """ Set up and run the RL algorithm. @@ -72,9 +81,9 @@ def learn(self, data, **kwargs): data: castle.Tensor or numpy.ndarray The castle.Tensor or numpy.ndarray format data you want to learn. """ - config, _ = get_config() - for k in kwargs: - config.__dict__[k] = kwargs[k] + config = self.config + if dag is not None: + config.dag = dag if isinstance(data, np.ndarray): X = data @@ -95,7 +104,7 @@ def _rl(self, X, config): # Reproducibility set_seed(config.seed) - logger.info('Python version is {}'.format(platform.python_version())) + logging.info('Python version is {}'.format(platform.python_version())) # input data if hasattr(config, 'dag'): @@ -120,8 +129,8 @@ def _rl(self, X, config): lambda_iter_num = config.lambda_iter_num # test initialized score - logger.info('Original sl: {}, su: {}, strue: {}'.format(sl, su, strue)) - logger.info('Transfomed sl: {}, su: {}, lambda2: {}, true: {}'.format(sl, su, lambda2, + logging.info('Original sl: {}, su: {}, strue: {}'.format(sl, su, strue)) + logging.info('Transfomed sl: {}, su: {}, lambda2: {}, true: {}'.format(sl, su, lambda2, (strue-sl)/(su-sl)*lambda1_upper)) else: # test choices for the case with mannualy provided bounds @@ -146,9 +155,9 @@ def _rl(self, X, config): actor.input_dimension, training_set.inputdata, sl, su, lambda1_upper, score_type, reg_type, config.l1_graph_reg, False) - logger.info('Finished creating training dataset, actor model and reward class') + logging.info('Finished creating training dataset, actor model and reward class') - logger.info('Starting session...') + logging.info('Starting session...') sess_config = tf.ConfigProto(log_device_placement=False) sess_config.gpu_options.allow_growth = True @@ -157,7 +166,7 @@ def _rl(self, X, config): sess.run(tf.global_variables_initializer()) # Test tensor shape - logger.info('Shape of actor.input: {}'.format(sess.run(tf.shape(actor.input_)))) + logging.info('Shape of actor.input: {}'.format(sess.run(tf.shape(actor.input_)))) # Initialize useful variables rewards_avg_baseline = [] @@ -173,12 +182,12 @@ def _rl(self, X, config): max_reward = float('-inf') max_reward_score_cyc = (lambda1_upper+1, 0) - logger.info('Starting training.') + logging.info('Starting training.') for i in (range(1, config.nb_epoch + 1)): if config.verbose: - logger.info('Start training for {}-th epoch'.format(i)) + logging.info('Start training for {}-th epoch'.format(i)) input_batch = training_set.train_batch(actor.batch_size, actor.max_length, actor.input_dimension) graphs_feed = sess.run(actor.graphs, feed_dict={actor.input_: input_batch}) @@ -204,7 +213,7 @@ def _rl(self, X, config): reward_batch_score_cyc = np.mean(reward_feed[:,1:], axis=0) if config.verbose: - logger.info('Finish calculating reward for current batch of graph') + logging.info('Finish calculating reward for current batch of graph') # Get feed dict feed = {actor.input_: input_batch, actor.reward_: -reward_feed[:,0], actor.graphs_:graphs_feed} @@ -217,7 +226,7 @@ def _rl(self, X, config): feed_dict=feed) if config.verbose: - logger.info('Finish updating actor and critic network using reward calculated') + logging.info('Finish updating actor and critic network using reward calculated') lambda1s.append(lambda1) lambda2s.append(lambda2) @@ -232,7 +241,7 @@ def _rl(self, X, config): # logging if i == 1 or i % 500 == 0: - logger.info('[iter {}] reward_batch: {:.4}, max_reward: {:.4}, max_reward_batch: {:.4}'.format(i, + logging.info('[iter {}] reward_batch: {:.4}, max_reward: {:.4}, max_reward_batch: {:.4}'.format(i, reward_batch, max_reward, max_reward_batch)) # update lambda1, lamda2 @@ -245,7 +254,7 @@ def _rl(self, X, config): lambda1_upper = score_min lambda1 = min(lambda1+lambda1_update_add, lambda1_upper) lambda2 = min(lambda2*lambda2_update_mul, lambda2_upper) - logger.info('[iter {}] lambda1 {:.4}, upper {:.4}, lambda2 {:.4}, upper {:.4}, score_min {:.4}, cyc_min {:.4}'.format(i, + logging.info('[iter {}] lambda1 {:.4}, upper {:.4}, lambda2 {:.4}, upper {:.4}, score_min {:.4}, cyc_min {:.4}'.format(i, lambda1*1.0, lambda1_upper*1.0, lambda2*1.0, lambda2_upper*1.0, score_min*1.0, cyc_min*1.0)) graph_batch = convert_graph_int_to_adj_mat(graph_int) @@ -273,8 +282,8 @@ def _rl(self, X, config): acc_est2['fdr'], acc_est2['tpr'], acc_est2['fpr'], \ acc_est2['shd'], acc_est2['nnz'] - logger.info('before pruning: fdr {}, tpr {}, fpr {}, shd {}, nnz {}'.format(fdr, tpr, fpr, shd, nnz)) - logger.info('after pruning: fdr {}, tpr {}, fpr {}, shd {}, nnz {}'.format(fdr2, tpr2, fpr2, shd2, nnz2)) + logging.info('before pruning: fdr {}, tpr {}, fpr {}, shd {}, nnz {}'.format(fdr, tpr, fpr, shd, nnz)) + logging.info('after pruning: fdr {}, tpr {}, fpr {}, shd {}, nnz {}'.format(fdr2, tpr2, fpr2, shd2, nnz2)) plt.figure(1) plt.plot(rewards_batches, label='reward per batch') @@ -284,6 +293,6 @@ def _rl(self, X, config): plt.show() plt.close() - logger.info('Training COMPLETED !') + logging.info('Training COMPLETED !') return graph_batch_pruned.T diff --git a/gcastle/castle/algorithms/pc/pc.py b/gcastle/castle/algorithms/pc/pc.py index f3efecdf..f109cf01 100644 --- a/gcastle/castle/algorithms/pc/pc.py +++ b/gcastle/castle/algorithms/pc/pc.py @@ -13,47 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -import math from copy import deepcopy from itertools import combinations import numpy as np -import pandas as pd -from scipy.stats import norm from castle.common import BaseLearner, Tensor - - -def gauss_test(r, n, k, alpha): - """Gaussian test by Fisher's z-transform for pc algorithms. - - Parameters - ---------- - r: float - Correlation coefficient or partial correlation coefficient. - n: int - The number of samples. - k: int - The number of controlled variables. - alpha: float - Significance level. - - Returns - ------- - out: 0 or 1 - if p >= alpha then reject h0, return 0 else return 1 - """ - - cut_at = 0.99999 - r = min(cut_at, max(-1 * cut_at, r)) # make r between -1 and 1 - # Fisher’s z-transform - res = math.sqrt(n - k - 3) * .5 * math.log1p((2 * r) / (1 - r)) - # p-value H0: r == 0 H1: r != 0 - p = 2 * (1 - norm.cdf(abs(res))) - - if p >= alpha: - return 0 - else: - return 1 +from castle.common.independence_tests import CI_Test class PC(BaseLearner): @@ -63,11 +28,16 @@ class PC(BaseLearner): Reference: https://www.jmlr.org/papers/volume8/kalisch07a/kalisch07a.pdf + Parameters + ---------- + alpha: float, default 0.05 + Significance level. + ci_test : str + ci_test method + Attributes ---------- - n_samples : int - Number of samples. - causal_matrix : numpy.ndarray + causal_matrix : array Learned causal structure matrix. Examples @@ -84,283 +54,223 @@ class PC(BaseLearner): >>> print(met.metrics) """ - def __init__(self): + def __init__(self, alpha=0.05, ci_test='gauss'): super(PC, self).__init__() + self.alpha = alpha + self.causal_matrix = None + self.ci_test = ci_test - def learn(self, data, test_method=gauss_test, alpha=0.05): + def learn(self, data, **kwargs): """Set up and run the PC algorithm. Parameters ---------- - data: numpy.ndarray or Tensor + data: array or Tensor Training data. - test_method: function - The approach of conditional independent hypothesis test. - alpha: float - Significance level. """ if isinstance(data, np.ndarray): - data = pd.DataFrame(data) + data = data elif isinstance(data, Tensor): - data = pd.DataFrame(data.data) + data = data.data else: raise TypeError('The type of tensor must be ' - 'Tensor or numpy.ndarray, but got {}' + 'Tensor or array, but got {}.' .format(type(data))) + # Generating an undirected skeleton matrix + skeleton, sep_set = FindSkeleton.origin_pc(data=data, alpha=self.alpha, + ci_test=self.ci_test) + # Generating an causal matrix (DAG) + self._causal_matrix = orient(skeleton, sep_set).astype(int) - self.n_samples = data.shape[0] - # Calculate the correlation coefficient in all variables. - corr = data.corr() - # Generating an undirected skeleton matrix - skeleton, sep_set = self._cal_skeleton(corr_matrix=corr, - test_method=test_method, - alpha=alpha) +class FindSkeleton(object): + """Contains multiple methods for finding skeleton""" - # Generating an causal matrix (DAG) - self._causal_matrix = self._cal_cpdag(skeleton, - sep_set).astype(int).values + @staticmethod + def origin_pc(data, alpha=0.05, ci_test='gauss'): + """Origin PC-algorithm for learns a skeleton graph - def _cal_skeleton(self, corr_matrix, test_method, alpha): - """Generate an undirected skeleton matrix. + It learns a skeleton graph which contains only undirected edges + from data. This is the original version of the PC-algorithm for the + skeleton. Parameters ---------- - corr_matrix: pandas.DataFrame - Correlation coefficient matrix of all variables. - Shape is d * d, where d is the number of variables. - test_method: function - The approach of conditional independent hypothesis test. - alpha: float - Significance level. - - Return - ------ - skeleton_matrix: pandas.DataFrame - sep_set: dict, d-separation sets - The key is two variables '(x, y)' to test, - the value is set that the elements make x and y conditional - independent. + data : array, (n_samples, n_features) + Dataset with a set of variables V + alpha : float, default 0.05 + significant level + ci_test : str + ci_test method + + Returns + ------- + skeleton : array + The undirected graph + seq_set : dict + Separation sets + Such as key is (x, y), then value is a set of other variables + not contains x and y. """ + n_features = data.shape[1] + skeleton = np.ones((n_features, n_features)) - np.eye(n_features) + nodes = list(range(n_features)) sep_set = {} - skeleton = deepcopy(corr_matrix) - variables = list(skeleton.columns) - for i, label in enumerate(variables): - skeleton.iloc[i, i] = 0 k = 0 - # if k == 0, test the correlation coefficient - # if k == 1, test the first order partial correlation coefficient - # ... - ij = list(combinations(corr_matrix.columns, 2)) - while k <= len(variables) - 2: - for i, j in ij: + while k <= n_features - 2: + for i, j in combinations(nodes, 2): if k == 0: - r = corr_matrix.loc[i, j] - bool = test_method(r=r, n=self.n_samples, - k=k, alpha=alpha) - skeleton.loc[i, j] = skeleton.loc[j, i] = bool - if not bool: + if ci_test == 'gauss': + p_value = CI_Test.gauss_test(data, i, j, ctrl_var=[]) + else: + raise ValueError('Unknown ci_test method, please check ' + f'the parameter {ci_test}.') + if p_value >= alpha: + skeleton[i, j] = skeleton[j, i] = 0 sep_set[(i, j)] = [] + else: + pass else: - if skeleton.loc[i, j] == 0: + if skeleton[i, j] == 0: continue - else: - # combined sub_matrix - sub_v = deepcopy(variables) - sub_v.remove(i) - sub_v.remove(j) - a = [] - for ks in combinations(sub_v, k): - sub = [i, j] - for s in ks: - sub.append(s) - sub_corr = corr_matrix.loc[sub, sub] - # inverse matrix - PM = np.linalg.inv(sub_corr) - r = -1 * PM[0, 1] / math.sqrt( - abs(PM[0, 0] * PM[1, 1])) - bool = test_method(r=r, n=self.n_samples, - k=k, alpha=alpha) - if not bool: - a.extend(ks) - if a: - skeleton.loc[i, j] = skeleton.loc[j, i] = 0 - sep_set[(i, j)] = a - # break # Don't break if you want to check all ks. - else: - skeleton.loc[i, j] = skeleton.loc[j, i] = 1 + other_nodes = deepcopy(nodes) + other_nodes.remove(i) + other_nodes.remove(j) + s = [] + for ctrl_var in combinations(other_nodes, k): + ctrl_var = list(ctrl_var) + if ci_test == 'gauss': + p_value = CI_Test.gauss_test(data, i, j, ctrl_var) + else: + raise ValueError('Unknown ci_test method, please check ' + f'the parameter {ci_test}.') + if p_value >= alpha: + s.extend(ctrl_var) + if s: + skeleton[i, j] = skeleton[j, i] = 0 + sep_set[(i, j)] = s + break k += 1 + return skeleton, sep_set - def _cal_cpdag(self, skeleton_matrix, sep_set): - """Extend the skeleton to a CPDAG. - Pre-processing rule: - for all pairs of nonadjacent variables (i, j) with common neighbour k do - if k not in sep_set(i, j) then - Replace i——k——j in skeleton by i——>k<——j +def orient(skeleton, sep_set): + """Extending the Skeleton to the Equivalence Class - Parameters - ---------- - skeleton_matrix: pandas.DataFrame - sep_set: dict,d-separation sets - The key is two variables '(x, y)' to test, - the value is set that the elements make x and y conditional - independent. + it orients the undirected edges to form an equivalence class of DAGs. - Returns - ------- - out: pandas.DataFrame - A matrix of CPDAG. - """ + Parameters + ---------- + skeleton : array + The undirected graph + sep_set : dict + separation sets + if key is (x, y), then value is a set of other variables + not contains x and y - pdag = deepcopy(skeleton_matrix) - # pre-processing - for ij in sep_set.keys(): - i, j = ij - all_k = [x for x in pdag.columns if x not in ij] - for k in all_k: - if pdag.loc[i, k] + pdag.loc[k, i] != 0 \ - and pdag.loc[k, j] + pdag.loc[j, k] != 0: - if k not in sep_set[ij]: - if pdag.loc[i, k] + pdag.loc[k, i] == 2: - pdag.loc[k, i] = 0 - if pdag.loc[j, k] + pdag.loc[k, j] == 2: - pdag.loc[k, j] = 0 - pdag = self._rule_1(pdag=pdag) - pdag = self._rule_2(pdag=pdag) - pdag = self._rule_3(pdag=pdag, sep_set=sep_set) - pdag = self._rule_4(pdag=pdag, sep_set=sep_set) - - return pdag - - def _rule_1(self, pdag): + Returns + ------- + out : array + An equivalence class of DAGs can be uniquely described + by a completed partially directed acyclic graph (CPDAG) + which includes both directed and undirected edges. + """ + + def _rule_1(cpdag): """Rule_1 Orient i——j into i——>j whenever there is an arrow k——>i such that k and j are nonadjacent. - - Parameters - ---------- - pdag: pandas.DataFrame - - Returns - ------- - out: pandas.DataFrame, pdag """ - ind = list(combinations(pdag.columns, 2)) + columns = list(range(cpdag.shape[1])) + ind = list(combinations(columns, 2)) for ij in sorted(ind, key=lambda x: (x[1], x[0])): # Iteration every (i, j) i, j = ij - if pdag.loc[i, j] * pdag.loc[j, i] == 0: + if cpdag[i, j] * cpdag[j, i] == 0: continue # search i——j else: - all_k = [x for x in pdag.columns if x not in ij] + all_k = [x for x in columns if x not in ij] for k in all_k: - if pdag.loc[k, i] == 1 and pdag.loc[i, k] == 0 \ - and pdag.loc[k, j] + pdag.loc[j, k] == 0: - pdag.loc[j, i] = 0 - return pdag + if cpdag[k, i] == 1 and cpdag[i, k] == 0 \ + and cpdag[k, j] + cpdag[j, k] == 0: + cpdag[j, i] = 0 + return cpdag - def _rule_2(self, pdag): + def _rule_2(cpdag): """Rule_2 Orient i——j into i——>j whenever there is a chain i——>k——>j. - - Parameters - ---------- - pdag: pandas.DataFrame - - Returns - ------- - out: pandas.DataFrame, pdag """ - ind = list(combinations(pdag.columns, 2)) + + columns = list(range(cpdag.shape[1])) + ind = list(combinations(columns, 2)) for ij in sorted(ind, key=lambda x: (x[1], x[0])): # Iteration every (i, j) i, j = ij - if pdag.loc[i, j] * pdag.loc[j, i] == 0: + if cpdag[i, j] * cpdag[j, i] == 0: continue # search i——j else: - all_k = [x for x in pdag.columns if x not in ij] + all_k = [x for x in columns if x not in ij] for k in all_k: - if pdag.loc[i, k] ==1 and pdag.loc[k, i] == 0 \ - and pdag.loc[k, j] ==1 \ - and pdag.loc[j, k] == 0: - pdag.loc[j, i] = 0 - return pdag + if cpdag[i, k] == 1 and cpdag[k, i] == 0 \ + and cpdag[k, j] == 1 \ + and cpdag[j, k] == 0: + cpdag[j, i] = 0 + return cpdag - def _rule_3(self, pdag, sep_set=None): + def _rule_3(cpdag, sep_set=None): """Rule_3 Orient i——j into i——>j whenever there are two chains i——k——>j and i——l——>j such that k and l are non-adjacent. - - Parameters - ---------- - pdag: pandas.DataFrame - sep_set: dict,d-separation sets - The key is two variables '(x, y)' to test, - the value is set that the elements make x and y conditional - independent. - - Returns - ------- - out: pandas.DataFrame, pdag """ - ind = list(combinations(pdag.columns, 2)) + + columns = list(range(cpdag.shape[1])) + ind = list(combinations(columns, 2)) for ij in sorted(ind, key=lambda x: (x[1], x[0])): # Iteration every (i, j) i, j = ij - if pdag.loc[i, j] * pdag.loc[j, i] == 0: + if cpdag[i, j] * cpdag[j, i] == 0: continue # search i——j else: - for kl in sep_set.keys(): # k and l are nonadjacent. + for kl in sep_set.keys(): # k and l are nonadjacent. k, l = kl # if i——k——>j and i——l——>j - if pdag.loc[i, k] == 1 \ - and pdag.loc[k, i] == 1 \ - and pdag.loc[k, j] == 1 \ - and pdag.loc[j, k] == 0 \ - and pdag.loc[i, l] == 1 \ - and pdag.loc[l, i] == 1 \ - and pdag.loc[l, j] == 1 \ - and pdag.loc[j, l] == 0: - pdag.loc[j, i] = 0 - return pdag - - def _rule_4(self, pdag, sep_set=None): + if cpdag[i, k] == 1 \ + and cpdag[k, i] == 1 \ + and cpdag[k, j] == 1 \ + and cpdag[j, k] == 0 \ + and cpdag[i, l] == 1 \ + and cpdag[l, i] == 1 \ + and cpdag[l, j] == 1 \ + and cpdag[j, l] == 0: + cpdag[j, i] = 0 + return cpdag + + def _rule_4(cpdag, sep_set=None): """Rule_4 Orient i——j into i——>j whenever there are two chains i——k——>l and k——>l——>j such that k and j are non-adjacent. - - Parameters - ---------- - pdag: pandas.DataFrame - sep_set: dict,d-separation sets - The key is two variables '(x, y)' to test, - the value is set that the elements make x and y conditional - independent. - - Returns - ------- - out: pandas.DataFrame, pdag """ - ind = list(combinations(pdag.columns, 2)) + + columns = list(range(cpdag.shape[1])) + ind = list(combinations(columns, 2)) for ij in sorted(ind, key=lambda x: (x[1], x[0])): # Iteration every (i, j) i, j = ij - if pdag.loc[i, j] * pdag.loc[j, i] == 0: + if cpdag[i, j] * cpdag[j, i] == 0: continue # search i——j else: @@ -371,14 +281,35 @@ def _rule_4(self, pdag, sep_set=None): kj = list(kj) kj.remove(j) k = kj[0] - ls = [x for x in pdag.columns - if x not in [i, j, k]] + ls = [x for x in columns if x not in [i, j, k]] for l in ls: - if pdag.loc[k, l] == 1 \ - and pdag.loc[l, k] == 0 \ - and pdag.loc[i, k] == 1 \ - and pdag.loc[k, i] == 1 \ - and pdag.loc[l, j] == 1 \ - and pdag.loc[j, l] == 0: - pdag.loc[j, i] = 0 - return pdag + if cpdag[k, l] == 1 \ + and cpdag[l, k] == 0 \ + and cpdag[i, k] == 1 \ + and cpdag[k, i] == 1 \ + and cpdag[l, j] == 1 \ + and cpdag[j, l] == 0: + cpdag[j, i] = 0 + return cpdag + + columns = list(range(skeleton.shape[1])) + cpdag = deepcopy(skeleton) + # pre-processing + for ij in sep_set.keys(): + i, j = ij + all_k = [x for x in columns if x not in ij] + for k in all_k: + if cpdag[i, k] + cpdag[k, i] != 0 \ + and cpdag[k, j] + cpdag[j, k] != 0: + if k not in sep_set[ij]: + if cpdag[i, k] + cpdag[k, i] == 2: + cpdag[k, i] = 0 + if cpdag[j, k] + cpdag[k, j] == 2: + cpdag[k, j] = 0 + cpdag = _rule_1(cpdag=cpdag) + cpdag = _rule_2(cpdag=cpdag) + cpdag = _rule_3(cpdag=cpdag, sep_set=sep_set) + cpdag = _rule_4(cpdag=cpdag, sep_set=sep_set) + + return cpdag + diff --git a/gcastle/castle/algorithms/ttpm/ttpm.py b/gcastle/castle/algorithms/ttpm/ttpm.py index af77647f..390abddb 100644 --- a/gcastle/castle/algorithms/ttpm/ttpm.py +++ b/gcastle/castle/algorithms/ttpm/ttpm.py @@ -35,6 +35,19 @@ class TTPM(BaseLearner): topology_matrix: np.matrix Interpreted as an adjacency matrix to generate the graph. It should have two dimensions, and should be square. + + delta: float, default=0.1 + Time decaying coefficient for the exponential kernel. + + epsilon: int, default=1 + BIC penalty coefficient. + + max_hop: positive int, default=6 + The maximum considered hops in the topology, + when ``max_hop=1``, it is divided by nodes, regardless of topology. + + penalty: str, default=BIC + Two optional values: 'BIC' or 'AIC'. Examples @@ -45,8 +58,8 @@ class TTPM(BaseLearner): >>> from castle.algorithms import TTPM # Data Simulation for TTPM >>> true_causal_matrix, topology_matrix, X = load_dataset(name='thp_test') - >>> ttpm = TTPM(topology_matrix) - >>> ttpm.learn(X, max_hop=2) + >>> ttpm = TTPM(topology_matrix, max_hop=2) + >>> ttpm.learn(X) >>> causal_matrix = ttpm.causal_matrix # plot est_dag and true_dag >>> GraphDAG(ttpm.causal_matrix.values, true_causal_matrix) @@ -55,7 +68,8 @@ class TTPM(BaseLearner): >>> ret_metrix.metrics """ - def __init__(self, topology_matrix): + def __init__(self, topology_matrix, delta=0.1, epsilon=1, + max_hop=6, penalty='BIC'): BaseLearner.__init__(self) assert isinstance(topology_matrix, np.ndarray),\ 'topology_matrix should be np.matrix object' @@ -65,9 +79,13 @@ def __init__(self, topology_matrix): 'The topology_matrix should be square.' self._topo = nx.from_numpy_matrix(topology_matrix, create_using=nx.Graph) + # initialize instance variables + self._penalty = penalty + self._delta = delta + self._max_hop = max_hop + self._epsilon = epsilon - def learn(self, tensor, delta=0.1, epsilon=1, - max_hop=6, penalty='BIC'): + def learn(self, tensor, *args, **kwargs): """ Set up and run the TTPM algorithm. @@ -82,19 +100,6 @@ def learn(self, tensor, delta=0.1, epsilon=1, event: event name (type). timestamp: occurrence timestamp of event, i.e., '1615962101.0'. node: topological node where the event happened. - - delta: float, default=0.1 - Time decaying coefficient for the exponential kernel. - - epsilon: int, default=1 - BIC penalty coefficient. - - max_hop: positive int, default=6 - The maximum considered hops in the topology, - when ``max_hop=1``, it is divided by nodes, regardless of topology. - - penalty: str, default=BIC - Two optional values: 'BIC' or 'AIC'. """ # data type judgment @@ -109,12 +114,8 @@ def learn(self, tensor, delta=0.1, epsilon=1, "The data tensor should contain column with name {}".format( col)) - if penalty != 'BIC' and penalty != 'AIC': - raise ValueError( - "The penalty's value should be BIC or AIC.") - # initialize needed values - self._start_init(tensor, epsilon, delta, max_hop, penalty) + self._start_init(tensor) # Generate causal matrix (DAG) _, raw_causal_matrix = self._hill_climb() @@ -122,7 +123,7 @@ def learn(self, tensor, delta=0.1, epsilon=1, index=self._matrix_names, columns=self._matrix_names) - def _start_init(self, tensor, epsilon, delta, max_hop, penalty): + def _start_init(self, tensor): """ Generates some required initial values. """ @@ -137,12 +138,6 @@ def _start_init(self, tensor, epsilon, delta, max_hop, penalty): tensor = tensor.sort_values(['node', 'timestamp']) self.tensor = tensor[tensor['node'].isin(self._topo.nodes)] - # initialize instance variables - self._penalty = penalty - self._delta = delta - self._max_hop = max_hop - self._epsilon = epsilon - # calculate considered events self._event_names = np.array(list(set(self.tensor['event']))) self._event_names.sort() @@ -163,10 +158,10 @@ def _start_init(self, tensor, epsilon, delta, max_hop, penalty): self._max_s_t = tensor['timestamp'].max() self._min_s_t = tensor['timestamp'].min() - for k in tqdm(range(max_hop)): + for k in tqdm(range(self._max_hop)): self._decay_effects[:, k] = tensor.groupby('event').apply( lambda i: ((((1 - np.exp( - -delta * (self._max_s_t - i['timestamp']))) / delta) + -self._delta * (self._max_s_t - i['timestamp']))) / self._delta) * i['times']) * i['node'].apply( lambda j: len(self._k_hop_neibors(j, k)))).sum()) # |V|x|T| @@ -375,11 +370,13 @@ def _em(self, edge_mat): return l_init - (len(self._event_names) + self._epsilon * edge_mat.sum() * self._max_hop), alpha, mu - if self._penalty == 'BIC': + elif self._penalty == 'BIC': return l_init - (len(self._event_names) + self._epsilon * edge_mat.sum() * self._max_hop) * np.log( self.tensor['times'].sum()) / 2, alpha, mu + else: + raise ValueError("The penalty's value should be BIC or AIC.") def _one_step_change_iterator(self, edge_mat): diff --git a/gcastle/castle/common/independence_tests.py b/gcastle/castle/common/independence_tests.py new file mode 100644 index 00000000..dc9dc520 --- /dev/null +++ b/gcastle/castle/common/independence_tests.py @@ -0,0 +1,50 @@ +# -*-coding: utf-8 -*- + +import math +import numpy as np +from scipy.stats import norm + +class CI_Test(object): + """Class of conditional independence test""" + + @staticmethod + def gauss_test(data, x, y, ctrl_var): + """Gauss test + + Parameters + ---------- + data : array, (n_samples, n_features) + Dataset + x : int + The first node + y : int + The second node + ctrl_var: List + The set of neighboring nodes of x and y (controlled variables) + + Returns + ------- + p: float + the p-value of conditional independence. + """ + + n = data.shape[0] + k = len(ctrl_var) + if k == 0: + r = np.corrcoef(data[:, [x, y]].T)[0][1] + else: + sub_index = [x, y] + sub_index.extend(ctrl_var) + sub_corr = np.corrcoef(data[:, sub_index].T) + # inverse matrix + PM = np.linalg.inv(sub_corr) + r = -1 * PM[0, 1] / math.sqrt(abs(PM[0, 0] * PM[1, 1])) + cut_at = 0.99999 + r = min(cut_at, max(-1 * cut_at, r)) # make r between -1 and 1 + + # Fisher’s z-transform + res = math.sqrt(n - k - 3) * .5 * math.log1p((2 * r) / (1 - r)) + p = 2 * (1 - norm.cdf(abs(res))) + + return p + diff --git a/gcastle/castle/datasets/loader.py b/gcastle/castle/datasets/loader.py index 31de9eb8..06f8384b 100644 --- a/gcastle/castle/datasets/loader.py +++ b/gcastle/castle/datasets/loader.py @@ -46,8 +46,8 @@ def load_dataset(name='iid_test'): if name.lower() == 'iid_test': weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=20, - weight_range=(0.5, 2.0), - seed=1) + weight_range=(0.5, 2.0), + seed=1) dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', sem_type='gauss') true_dag, X = dataset.B, dataset.X @@ -56,11 +56,11 @@ def load_dataset(name='iid_test'): elif name.lower() == 'thp_test': true_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10) - topology_matrix = Topology.erdos_renyi(n_nodes=5, n_edges=5) + topology_matrix = Topology.erdos_renyi(n_nodes=20, n_edges=20) simulator = THPSimulation(true_dag, topology_matrix, - mu_range=(0.0005, 0.001), - alpha_range=(0.005, 0.007)) - X = simulator.simulate(T=10000, max_hop=2) + mu_range=(0.00005, 0.0001), + alpha_range=(0.005, 0.007)) + X = simulator.simulate(T=25000, max_hop=2) return true_dag, topology_matrix, X diff --git a/gcastle/castle/datasets/simulation.py b/gcastle/castle/datasets/simulation.py index 5e52b005..145e713e 100644 --- a/gcastle/castle/datasets/simulation.py +++ b/gcastle/castle/datasets/simulation.py @@ -20,6 +20,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging import random from random import sample import numpy as np @@ -31,8 +32,8 @@ from itertools import combinations from scipy.special import expit as sigmoid -from loguru import logger -import igraph as ig + +logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s') def set_random_seed(seed): @@ -231,7 +232,7 @@ def low_rank(n_nodes, degree=1, rank=5, weight_range=None, seed=None): assert n_nodes > 0 set_random_seed(seed) B = DAG._low_rank_dag(n_nodes, degree, rank) - if weight_range is None: + if weight_range is None: return B else: W = DAG._BtoW(B, n_nodes, weight_range) @@ -266,7 +267,7 @@ def __init__(self, W, n=1000, method='linear', elif method == 'nonlinear': self.X = IIDSimulation._simulate_nonlinear_sem( W, n, sem_type, noise_scale) - logger.info('Finished synthetic dataset') + logging.info('Finished synthetic dataset') @staticmethod def _simulate_linear_sem(W, n, sem_type, noise_scale): @@ -321,7 +322,8 @@ def _simulate_single_equation(X, w, scale): if len(noise_scale) != d: raise ValueError('noise scale must be a scalar or has length d') scale_vec = noise_scale - if not ig.Graph.Weighted_Adjacency(W.tolist()).is_dag(): + G_nx = nx.from_numpy_matrix(W, create_using=nx.DiGraph) + if not nx.is_directed_acyclic_graph(G_nx): raise ValueError('W must be a DAG') if np.isinf(n): # population risk for linear gauss SEM if sem_type == 'gauss': @@ -331,12 +333,11 @@ def _simulate_single_equation(X, w, scale): else: raise ValueError('population risk not available') # empirical risk - G = ig.Graph.Weighted_Adjacency(W.tolist()) - ordered_vertices = G.topological_sorting() + ordered_vertices = list(nx.topological_sort(G_nx)) assert len(ordered_vertices) == d X = np.zeros([n, d]) for j in ordered_vertices: - parents = G.neighbors(j, mode=ig.IN) + parents = list(G_nx.predecessors(j)) X[:, j] = _simulate_single_equation(X[:, parents], W[parents, j], scale_vec[j]) return X @@ -410,11 +411,11 @@ def _simulate_single_equation(X, scale): scale_vec = noise_scale X = np.zeros([n, d]) - G = ig.Graph.Adjacency(B.tolist()) - ordered_vertices = G.topological_sorting() + G_nx = nx.from_numpy_matrix(B, create_using=nx.DiGraph) + ordered_vertices = list(nx.topological_sort(G_nx)) assert len(ordered_vertices) == d for j in ordered_vertices: - parents = G.neighbors(j, mode=ig.IN) + parents = list(G_nx.predecessors(j)) X[:, j] = _simulate_single_equation(X[:, parents], scale_vec[j]) return X diff --git a/gcastle/docs/ANM.md b/gcastle/docs/ANM.md new file mode 100644 index 00000000..9d318d6e --- /dev/null +++ b/gcastle/docs/ANM.md @@ -0,0 +1,78 @@ +# ANM_Nonlinear + +## 1. 算法介绍 + +因果关系是科学的基础,因为它们能够预测行动的后果。虽然受控随机实验是确定因果关系的主要工具,但在许多情况下,此类实验要么过于昂贵,要么技术上不可能。因此,从非受控数据推断因果关系的因果发现方法的发展构成了当前重要的研究课题。如果观察到的数据是连续的,则通常应用基于线性因果模型(又名结构方程模型)的方法。这不一定是因为真正的因果关系被认为是线性的,而是因为线性模型能被很好地理解和易于使用。标准的方法是从数据中估计有向无环图的所谓马尔可夫等价类(所有图都表示相同的条件独立性)。对于连续变量,独立性检验通常假定具有加性高斯噪声的线性模型。然而,最近的研究表明,对于线性模型,数据中的非高斯性实际上可以帮助区分因果方向,并允许人们在有利条件下唯一地识别生成图。 + +在 [Nonlinear causal discovery with additive noise models](https://is.tuebingen.mpg.de/fileadmin/user_upload/files/publications/NIPS2008-Hoyer-neu_5406[0].pdf) 一文中,作者证明了非线性可以发挥与非高斯性非常相似的作用,即当因果关系是非线性的时,它通常有助于打破观测变量之间的对称性,并允许识别因果方向。对于具有加性噪声的非线性模型,几乎任何非线性(可逆或不可逆)通常都会产生可识别的模型。 + +## 2. 算法原理 + +### 2.1 模型假设 + +我们假设被观测的数据是由如下方式所生成,即:有向无环图 $G$ 中的节点 $i$ 所关联的每一个观测变量 $x_i$ 的值是由 $G$ 中它的父节点的函数加上独立加性噪声 $n_i$ 所获得。即: +$$ +x_i := f_i(\mathrm{Xpa(i)}) + n_i +$$ +其中: + +- $f_i$ 是任意函数(对每一个节点 $i$ 可能不同) +- $\mathrm{Xpa}(i)$ 是 DAG 中节点 $i$ 的所有父节点 $j$ 的关联向量的集合 +- $n_i$ 是噪声变量,服从联合独立的任意概率密度函数。 + +我们的目标是,给定数据向量,尽可能多的推断生成机制,特别的,我们试图推断生成图 $G$ 。 + +### 2.2 搜索策略 + +从考虑两个观测变量 $x$ 和 $y$ 的案例开始,对每一对变量 $x$ 和 $y$ 进行如下步骤: + +- 第一步:检验 $x$ 与 $y$ 的统计独立性。 +- 第二步:如果独立,则 $x$ 和 $y$ 不存在因果关系;如果不独立,进一步使用模型 $y := f(x) + n$ 对数据进行拟合,简单的做法是对 $x$ 做非线性回归,得到估计值 $\hat f$ ,并计算对应的残差 $ \hat n = y - \hat f(x)$ ,检验 $\hat n$ 与变量 $x$ 是否独立。如果独立,则接受该模型,认为存在因果关系 $x \to y$;如果不独立,则拒绝该模型,认为不存在因果关系 $x \to y$。 +- 第三步:使用反向模型 $x := g(y) + n$ 来拟合数据,并用第二步的方式检验是否存在因果关系 $y \to x$。 + +## 3. 使用指导 + +调用算法有两种模式实现:API模式、工具模式。 + +### 3.1 使用示例 + +使用模拟数据的示例 [demo]() 。 + +#### API 模式 + +```python +import pandas as pd +from castle.algorithms import ANM_Nonlinear + +x = pd.read_csv('x.csv').values # x.csv 是观测数据,行-表示样本,列-表示特征 + +anm = ANM_Nonlinear(alpha=0.05) +anm.learn(data=x) + +print(anm.causal_matrix) # 打印 学到的因果图(矩阵) +``` + +#### 工具模式 + +1. 在 .yaml文件中进行参数配置,配置示例如下: + + ```yaml + dataset_params: + x_file: None # None or .npz or .csv 样本数据所在路径 + dag_file: None # None or .npz or .csv 真实dag矩阵所在路径 + + model_params: + alpha: 0.05 + gpr_alpha: !!float 1e-10 + ``` + +2. 执行如下命令: + + ```shell + python run.py -m anm_nonlinear -c example/anm/anm_nonlinear.yaml + ``` + +### 3.2 算法输出 + +算法会输出模型的实例,可通过访问 `ANM_Nonlinear.causal_matrix` 查看模型所推断的因果关系矩阵。 + diff --git a/gcastle/docs/GraN-DAG.md b/gcastle/docs/GraN-DAG.md new file mode 100644 index 00000000..5138bafc --- /dev/null +++ b/gcastle/docs/GraN-DAG.md @@ -0,0 +1,143 @@ +# GraN_DAG + +## 1. 算法介绍 + +---- + +结构学习和因果推理在遗传学、生物学和经济学等不同科学领域有许多重要的应用。学习因果图形模型的典型动机是预测各种干预的影响效果。当给出干预数据时,因果图模型(CGM)可以最好地被估计,但干预通常是昂贵的或不可能获得的。作为替代方案,GraN_DAG提出了一种仅仅依赖观测数据,并依靠不同的假设,使得因果图可以从分布中识别。 + +## 2. 算法原理 + +GraN_DAG 提出一种基于打分的结构学习方法,用于支持非线性关系,同时利用连续优化范式。该方法基于 NOTEARS 方法,对神经网络的非循环性进行了新的表征。在原始的方法 NOTEARS 中,有向图被编码为加权邻接矩阵,该矩阵表示线性结构方程模型(SEM)中的系数,并使用可有效计算和易于微分的约束强制非循环性,从而允许使用数值求解器。这种连续方法改进了流行的方法,同时避免了基于启发式的贪婪算法的设计。 + +结构学习的连续约束方法的优点是比其他近似贪婪方法更全局(因为它根据分数的梯度和非周期性约束更新每个步骤的所有边),并允许用适当的非周期性约束来取代特定于任务的贪婪算法货架数值求解器。 + +详细的原理介绍请参考 [Gradient-Based Neural DAG Learning](https://arxiv.org/pdf/1906.02226.pdf) 。 + +### 2.1 学习策略 + +我们使用专业术语“神经网络路径”来表示神经网络中的计算路径。例如,在一个含有2层隐藏层的神经网络中,权值序列($W_{h_1 i}^{(1)},W_{h_2 h_1}^{(2)},W_{k h_2}^{(3)}$ )是一条从输入 **_i_** 到输出 **_k_** 的神经网络路径。如果至少有一个沿着该路径的权值是 0 ,我们称这条神经网络路径是**未激活的**。如果所有从输入 **_i_** 到输出 **_k_** 的神经网络路径都是未激活的,则称输出 **_k_** 不依赖于输入 **_i_** ,或者说输入 **_i_** 将永远不会到达输出 **_k_** ,即不存在因果关系。 + +[原文 3.1 节有更详细的介绍](https://arxiv.org/pdf/1906.02226.pdf) + +### 2.2 数学原理 + +GraN_DAG 在 NOTEARS 的基础上提出了一种新的非线性扩展的框架。该算法包含三个重要组成部分:**神经网络模型**、**连接矩阵**、**邻接矩阵**。 + +#### 2.2.1 神经网络模型 + +$$ +\theta_{(j)} \triangleq W_{(j)}^{(L+1)}g(...g(W_{(j)}^{(2)}g(W_{(j)}^{(1)}X_{\_j}))...) \ \ \ \ \forall_j +$$ + +其中: **_g_** 是激活函数 leaky-relu 或 sigmoid 。 + +#### 2.2.2 连接矩阵 + +用以计算神经网络路径 +$$ +C_j \triangleq |W_j^{(L+1)}|...|W_j^{(2)}||W_j^{(1)}| \in \mathbb R^{m×d} +$$ +​其中,|| 表示绝对值。 + +#### 2.2.3 邻接矩阵 + +定义可用于约束的邻接矩阵: +$$ +(A_\phi)_{ij} \triangleq \begin{cases} \sum_{k=1}^m (C_{(j)})_{ki}, \ \ \ if \ \ j \ne i \\ 0, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ otherwise \end{cases} +$$ +约束的定义为: +$$ +h(\phi) \triangleq Tr\ e^{A_\phi} - d = 0 +$$ +实际情况中,我们使用 $10^{-8}$ 代替 0 值。 + +#### 2.2.4 目标函数及优化 + +$$ +\max \limits_{\phi} \mathcal L(\phi, \lambda_t, \mu_t) \triangleq \mathbb E_X \sim P_X \sum_{j=1}^d log\ p_j(X_j|X_{\pi_j^\phi};\phi_{(j)}) - \lambda_t h(\phi) - \frac{\mu_t}{2}h(\phi)^2 +$$ + +其中:_t_ = 1, 2, 3, ... 表示第 _t_ 次迭代。 + +参数的优化规则如下: +$$ +\lambda_{t+1} \gets \lambda_t + \mu_t h(\phi_t^*) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ +\mu_{t+1} \gets \begin{cases} \eta \mu_t , \ \ \ if \ h(\phi_t^*) > \gamma h(\phi_{t-1}^*) \\ \mu_t, \ \ \ \ \ otherwise \end{cases} +$$ + +## 3. 使用指导 + +调用算法有两种模式实现:API模式、工具模式。 + +### 3.1 使用示例 + +#### API模式 + +```python +import pandas as pd +from castle.algorithms import GraN_DAG + +x = pd.read_csv('x.csv').values # x.csv 是观测数据,行-表示样本,列-表示特征 + +gnd = GraN_DAG(input_dim=x.shape[1]) +gnd.learn(data=x) + +print(gnd.causal_matrix) # 打印 学到的因果图(矩阵) +``` +#### 工具模式 + +1. 在 .yaml文件中进行参数配置,配置示例如下: + + ```python + dataset_params: + x_file: None # None or .npz or .csv 样本数据所在路径 + dag_file: None # None or .npz or .csv 真实dag矩阵所在路径 + + model_params: + input_dim: 10 # number of variable, X.shape[1] + hidden_num: 2 # number of hidden layers + hidden_dim: 10 # number of dimension per hidden layer + lr: 0.001 # learning rate + iterations: 100000 # times of iteration + batch_size: 64 # batch size of per training of NN + model_name: 'NonLinGaussANM' # name of model, 'NonlinearGauss' or 'NonlinearGaussANM' + nonlinear: 'leaky-relu' # name of Nonlinear activation function + optimizer: 'rmsprop' # Method of optimize + h_threshold: !!float 1e-8 # constrained threshold + gpu: False # whether use gpu + + pns: False # variable number or neighbors number used in the pns + pns_thresh: 0.75 + num_neighbors: None + + normalize: False # whether normalize data + precision: False # whether use Double precision + random_seed: 42 + jac_thresh: True + lambda_init: 0.0 + mu_init: 0.001 + omega_lambda: 0.0001 + omega_mu: 0.9 + stop_crit_win: 100 + edge_clamp_range: 0.0001 + norm_prod: 'paths' + square_prod: False + ``` + + 具体参数的含义请参考下一节 **4. API**。 + +2. 执行如下命令: + + ```shell + python run.py -m gran_dag -c example/gran_dag/gran_dag.yaml + ``` + + \-m : 表示模型 -model + + \-c :表示配置文件路径 -config + +### 3.2 算法输出 + +GraN_DAG算法会输出模型的实例,可通过访问 GraN_DAG.causal_matrix 或 GraN_DAG.model.adjacency 查看模型所学到的因果图矩阵。 + diff --git a/gcastle/docs/PC.md b/gcastle/docs/PC.md new file mode 100644 index 00000000..3a63e239 --- /dev/null +++ b/gcastle/docs/PC.md @@ -0,0 +1,85 @@ +# PC + +## 1. 算法介绍 + +图形模型是分析和可视化随机变量之间条件独立性关系的流行概率工具。模型的主要构建块是节点,它们表示随机变量和边,它们编码封闭顶点的条件依赖关系。随机变量之间的条件独立性结构可以使用马尔可夫性质来探索。 + +有向无环图(DAG),包含有向边而不是无向边,在某种意义上限制了条件依赖关系。这些图可以通过应用有向马尔可夫属性来解释。当忽略DAG的方向时,我们得到DAG的骨架。一般来说,它不同于条件独立性图(CIG),骨架可以很容易地解释,从而对数据的依赖结构产生有趣的见解。 + +PC算法是由Peter和Clark提出并以他们名字命名的贝叶斯网络结构学习方法。 + +## 2. 算法原理 + +由于DAG空间的巨大,从数据中估计DAG是困难的,而且在计算上也不平凡:可能的DAG数量随着节点的增加呈超指数增长。然而,对于节点数量较少或中等的问题,有相当成功的搜索和评分方法。例如,搜索空间可以限制在MWST中的树,或者使用贪婪的搜索。贪婪的DAG搜索可以通过利用概率等价关系来改进,搜索空间可以从单个DAG减少到等价类,如GE中提出的。虽然这种方法在节点数量很少或中等时似乎相当有希望,但它受到了这样一个事实的限制,即等价类的空间也被推测为随着节点的增加呈超指数增长。 + +PC算法从一个完整的无向图开始,并根据条件独立性决策递归删除边。这产生了一个无向图,然后可以部分定向并进一步扩展以表示基础DAG。 + +详细的原理介绍请参考 [PC算法的原文](https://www.jmlr.org/papers/volume8/kalisch07a/kalisch07a.pdf) 。 + +### 2.1 基本思想 + +- 变量之间的图结构的学习(无向图学习) + + > 首先创建完全无向图,然后基于d-分离以及独立性或条件独立性假设检验等统计方法给出的变量之间的独立性,砍掉相应的边,从而获得变量间的无向图。 + +- 图结构中方向的推断(有向边学习) + + > 依赖于V-结构(V-Structure)等局部结构特性确定部分边的方向。 + +### 2.2 搜索流程 + +PC算法主要由两部分组成: + +1. **无向图学习** + + ![](./image/pc1.png) + +2. **有向边学习** + + ![](./image/pc2.PNG) + +## 3. 使用指导 + +### 3.1 使用示例 + +#### API模式 + +```python +import pandas as pd +from castle.algorithms import PC + +x = pd.read_csv('x.csv').values # x.csv 是观测数据,行-表示样本,列-表示特征 + +pc = PC(alpha=0.05) +pc.learn(data=x) + +print(pc.causal_matrix) # 打印 学到的因果图(矩阵) +``` + +#### 工具模式 + +1. 在 .yaml文件中进行参数配置,配置示例如下: + + ```yaml + dataset_params: + x_file: None # None or .npz or .csv + dag_file: None # None or .npz or .csv + + model_params: + alpha: 0.05 # Significance level + ``` + +2. 执行如下命令: + + ```shell + python run.py -m pc -c example/pc/pc.yaml + ``` + + \-m : 表示模型 -model + + \-c :表示配置文件路径 -config + +### 3.2 算法输出 + +PC算法会输出模型的实例,可通过访问 PC.causal_matrix 查看模型所学到的因果图矩阵。 + diff --git a/gcastle/docs/TTPM.md b/gcastle/docs/TTPM.md new file mode 100644 index 00000000..76c66a08 --- /dev/null +++ b/gcastle/docs/TTPM.md @@ -0,0 +1,166 @@ +# TTPM + +## 1. 算法介绍 + +一些现有的事件序列因果发现方法,主流的基于 Multivariate Hawkes processes,如MLE-SGL(MLE-SGL, ICML2016) 等,其缺点是未考虑事件背后的拓扑结构,仅是通过点过程对顺序事件数据建模;但在许多真实世界中,事件往往发生在拓扑结构的某个节点上,如果忽略事件背后的拓扑结构,得到的结果可能是不稳定、易受攻击的。如下图:在移动网络中的真实报警场景中,节点n3中的告警v2受到节点n1、n2、n3中的告警v1的因果关系影响,但它们的影响强度各不相同,这取决于拓扑距离. + +![](./image/ttpm_fig.png) + +因此,在传统Hawkes processes的基础上,引入事件所发生节点的拓扑结构图,来发现时间序列事件之间的因果结构,会得到更为稳定可靠的结果. + +## 2. 算法原理 + +算法主要包括以下几部分: + +![](./image/flowchart.png) + +#### 2.1 因果强度函数 + +用于计算事件之间的影响强度值. + +为了从序列事件及其相应的拓扑结构图中捕捉到因果关系,我们假设类型为V的事件,在节点n处的每个时间间隔 ∆t 内的发生遵循一个泊松过程,为了简单起见,进一步限制拓扑对事件类型之间因果机制的影响主要取决于节点之间的拓扑距离,于是有如下公式: + +![](./image/causal_intensity_f.png) + +#### 2.2 似然函数 + +用于搜索因果结构的评分标准. + +设 M = 表示事件集合的因果模型,模型M在观测集合X上的对数似然性可表示为: + +![](./image/likelihood.png) + +#### 2.3 两步优化函数 + +- ##### 估计函数: + + 结合给定的因果结构,使用EM算法计算似然模型L(M; X)的最大上边界值. + +- ##### 搜索函数: + + 结合估计函数计算的似然模型L(M; X)的最大上边界值,使用Hill-Climbing算法搜索最佳因果结构,过程如下: + + ![](./image/hill_climbing.png) + + 初始化一个因果结构Gv,并调用估计函数计算其相应的似然值; + + 通过无限循环迭代搜索最佳因果结构:每一次迭代过程中,对因果结构Gv执行一次边的添加、删除或反 转,调用估计函数对新的因果结构进行计算,得到新似然值; + + 用新似然值与前一轮似然值进行比较,若前者大于后者,则保留最新似然值及因果结构;直至新似然值小于等于前一轮似然值,则结束循环,此时得到的因果结构即为最佳因果结构. + +## 3. 使用指导 + +运行算法可通过两种方式实现:脚本模式、配置文件模式. + +- #### 脚本模式: + + 在运行算法前,请先细读安装指导信息,确保环境能满足算法运行要求. + + 另需确保输入算法的时间序列事件数据集为pd.DataFrame类型,且包含三个字段:event(事件)、timestamp(时间戳)、node(节点). + + ```python + from castle.common import GraphDAG + from castle.metrics import MetricsDAG + from castle.datasets import DAG, Topology, THPSimulation + from castle.algorithms import TTPM + + + # 生成模拟数据 + true_causal_matrix = DAG.erdos_renyi(n_nodes=10, n_edges=10) + topology_matrix = Topology.erdos_renyi(n_nodes=20, n_edges=20) + simulator = THPSimulation(true_causal_matrix, topology_matrix, + mu_range=(0.00005, 0.0001), + alpha_range=(0.005, 0.007)) + X = simulator.simulate(T=25000, max_hop=2) + + # 模型实例化及学习 + ttpm = TTPM(topology_matrix, max_hop=2) + ttpm.learn(X) + print(ttpm.causal_matrix) + + # 可视化真实因果矩阵,及算法估计的因果矩阵 + GraphDAG(ttpm.causal_matrix.values, true_causal_matrix) + + # 计算准确率 + ret_metrix = MetricsDAG(ttpm.causal_matrix.values, true_causal_matrix) + print(ret_metrix.metrics) + ``` + +- #### 配置模式: + + 命令如:python run.py -m ttpm -c example/ttpm/ttpm.yaml + + 在example/ttpm/目录下,ttpm.yaml配置了命令行运行代码所需的信息,其配置如下: + + ```python + dataset_params: + x_file: None # None or .csv, 时间序列事件数据集,可为None,也可为数据存储路径. + dag_file: None # None or .npz or .csv,可为None或者真实因果矩阵存储路径. + # 若用csv文件存储,则文件中不能包含表头,存储矩阵值即可. + topology_file: None # None or .npz or .csv, 可为None,或拓扑邻接矩阵值的存储路径. + # 若用csv文件存储,则文件中不能包含表头,存储矩阵值即可. + + model_params: + delta: 0.1 # 时间函数衰减系数. + epsilon: 1 # BIC惩罚系数. + max_hop: 2 # 最大拓扑距离. + penalty: 'BIC' # 惩罚方式. + ``` + +## 4. API + +#### 4.1 参数说明: + +- ##### tensor + + learn()方法参数,时间序列事件数据集,其结构如下: + + | event | timestamp | node | + | :---: | :-------: | :--: | + | 0 | 402 | 0 | + | 1 | 240 | 1 | + | 2 | 2243 | 2 | + | 3 | 2676 | 3 | + | 4 | 89 | 0 | + +- ##### topology_matrix + + 邻接矩阵值,用于生成拓扑结构图. + +- ##### epsilon: + + 似然函数中用于计算惩罚系数大小,该值越大,惩罚系数越大. + +- ##### delta: + + 时间变化函数:∅(t) = exp(−δt)中的δ,用于控制时间函数的变化率;从直觉上来看,两个事件发生之间的时间间隔越长,则事件之间独立性的可能性越高;因此,该参数值可控制时间函数的变化率,而时间函数用于计算事件之间的影响强度,也即是说,该参数可用于改变事件之间的影响值. + +- ##### max_hop: + + 某个事件如v1,在某个节点如n1受到事件v2在三个不同的节点,如n1, n2, n3的影响,但他们之间的影响强度是不同的,这取决于它们之间的拓扑距离;该参数可理解为:算法内计算事件之间因果强度时,需考虑的最大拓扑距离. + +- ##### penalty: + + 似然函数中,惩罚项选择,有'AIC'和'BIC'两种选择;’BIC'为Bayesian Information Criterion(BIC),相较于‘AIC’,增加了一项k*log(m)/2,用于防止生成过多冗余的因果边. + +#### 4.2 结果输出: + +- ##### 结果可视化 + + 左侧为算法估算结果,右侧为真实因果: + + ![](./image/plot.png) + +- ##### 结果评估 + + ```python + {'fdr': 0.0, 'tpr': 1.0, 'fpr': 0.0, 'shd': 0, 'nnz': 8} + ``` + + 指标说明: + + > *fdr: (reverse + false positive) / prediction positive* + > *tpr: (true positive) / condition positive* + > *fpr: (reverse + false positive) / condition negative* + > *shd: undirected extra + undirected missing + reverse* + > *nnz: prediction positive* diff --git a/gcastle/docs/image/CONNECTIVITY.PNG b/gcastle/docs/image/CONNECTIVITY.PNG new file mode 100644 index 0000000000000000000000000000000000000000..14cb6464befe2ce66f866089882523bd2af3a655 GIT binary patch literal 2792 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 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NN.PNG b/gcastle/docs/image/NN.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f109be92c590d11f6024c100c4e17511345e69ed GIT binary patch literal 3691 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 JPDHLkV1k?xFYEvS literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Algorithm_1.PNG b/gcastle/docs/image/NOTEARS_Algorithm_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ee8a6949b919cc17129e030bcc4a1f7347b74e00 GIT binary patch literal 55969 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 QZhHDP)8my~MrdFdLsXu!R_I5l8j9nHpI12| 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 YC|(zc`Ww%6zJUEH%d5%N%b17%FK%6Sl>h($ literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Formula_1.PNG b/gcastle/docs/image/NOTEARS_Formula_1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..de13f49b3a7d4ffb365a86ab045af93608f7352a GIT binary patch literal 20699 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 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Formula_2.PNG b/gcastle/docs/image/NOTEARS_Formula_2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..47f648147bce94ca9fa38b79ebe0b8b709a72656 GIT binary patch literal 12243 zcmbulWmFtp6eWsFV~x8L+#0vw9^47;?!kh4;{>-ra1Cz39fCvf;2zvvrupX0o3-A0 zzh-`PcU9M|TldsC_sHHSQbkDy4L}5df`USmla*A1f`S1Zl7EmBI4dzlF(|0oc$8-oc*r@jv#hQg6cl>j`v-c+sni?_ip^S1QcT0k@MINH z1^eMIqVtUCMe?FlKdUF*zAoR#(eF|4Z8-3?_{aG$cr{RrY7XGwD1*thHZv#s)LP0Y zGb_ntF=x2&9Yv4MGe@lCZdy3tF59G)rIooHkAq8>xBoa&C{P@UGIU2A`rCg8)_H-l zkaM7TgNi84f7d?KQ((Oh0kYr#k>9U?@c`ieu1KQ5ONt{suqMlPx|1r`af!UD0NPtz zV4Zd{$&o2(Fy4o$ZPlGqj1Yd8wjV+Xvs}O!p!f$CY~>H#9Hbj(6-W9V217+DLRqAb zUbMH~52e6(N}?0rXg6=HXwuwxRP!RApL3TbwsmS^Z9*KFMVM(ow1ja-W$ywMPi2<5 zFPD|9iW9xREJ8va29N*-!MjY_lpGu|OsSz1UN08yR$R?NB*;f3QzIZE?nQvOw zu-MAel+JxXZMMi24;Xl+v9CaRO0sx~if-%Du(VI&JWHd0hpxDra&wtG> z+Xr--b^(d5y(GlOPNz}biDBCp%8Hmig11e*jMo2zNc|}{7ri-CV)K3#t`7#Fl=PNa zXo45F0Sd(V(ODS19_vzHPl-9?7P%JzJi^-Ny7kdOalUscGU!kHs>38nDQFxpvqjze zdrcA=TA4;%^2&X+E9GaS3?6)2apCmJ;1q?b0-FVMFOgH-tAad&T&A=OlZ-N>!l`aK zv2~4)<^0NoQQESZ#Jc@Ex7IB;rJ?g0yKXIze&{7|&3Wm(HSiQ+ zspZ%tY@~@vbe#@~lK&FL@6UXew=44@fnMK!F*GuZ z9Ua1R?~PUR55*1a@3>vZI!0e=OY_Sq01A)BX03bp-k>r*p(;8{gWt2q^nsTkyk;J0 zi;}m5@+B!GhQII9fB_+e!>9DshXISQc8OQKL;jMkd z%(FQQ?Q)NC26dfNKGmK^64#HtRCXQm6Uhls9P>W}naaUNj`ISJ4zT?U>- zb+lw8GilPRyS#14-+L?chca+(G`o_Y`fea2j0vs?)!-g!u}J-RBk}UC>@U(c!{)%A zFc});M#4Y~tZt@j=Uvyv$R75M<2(uhIX%)S+-ApH2%0A7&<-)}90uHLLv3Ak4k!Sc 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 B$Q%Fw literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Formula_3.PNG b/gcastle/docs/image/NOTEARS_Formula_3.PNG new file mode 100644 index 0000000000000000000000000000000000000000..848b918b7dbd3b3b610adf248502b7d821365343 GIT binary patch literal 8551 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 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Formula_4.PNG b/gcastle/docs/image/NOTEARS_Formula_4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..8fd3c00936a07a06c0de96f63dbdb78c752469f9 GIT binary patch literal 8771 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 S$$=uMWSVMvs#S2?u>S$8<;zn5 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Formula_6.PNG b/gcastle/docs/image/NOTEARS_Formula_6.PNG new file mode 100644 index 0000000000000000000000000000000000000000..ba313d66a50ce499892c642261c3f08eaa73da4b GIT binary patch literal 5772 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 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/NOTEARS_Formula_8.PNG b/gcastle/docs/image/NOTEARS_Formula_8.PNG new file mode 100644 index 0000000000000000000000000000000000000000..e08075de28082efd383f8114c772699e8bad312f GIT binary patch literal 12109 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 ba+B_n0{8LL3_-Wi6UtsvyqIyp`1XGR;aBta literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/RL_result_1.png b/gcastle/docs/image/RL_result_1.png new file mode 100644 index 0000000000000000000000000000000000000000..333e5029cfac42b343dc0f12c9c4a47884703838 GIT binary patch literal 13654 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 ba+B_n0{8LL3_-Wi6UtsvyqIyp`1XGR;aBta literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/adjacency.PNG b/gcastle/docs/image/adjacency.PNG new file mode 100644 index 0000000000000000000000000000000000000000..392ae6c7d68d0bf2744857e7690a37c4d1119a01 GIT binary patch literal 3382 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 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/constraint.PNG b/gcastle/docs/image/constraint.PNG new file mode 100644 index 0000000000000000000000000000000000000000..310546b8e462155bb80c42b5b1ec3427176d09b9 GIT binary patch literal 1456 zcmV;h1yA~kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1w~0jK~#8N?U+4I z^e_;HzdLaNH~<`g1Hb{Gph6%T8YpOxH~<^~N(wFj6%`#q;sQw2`Sh&v!ekgH&h92G zksrz0IP0JB%Gve|Y zDgwu*GKhx^*fw6@U+^p@Rcy9R!F+yavlcd$hcSnQO=;JzAAuhHH^z0R3+%C`{sw35d+5JIPNEOyt})rzx@V5=x9vA!Wm=bZ#U}ZJf{>}RF5r9G^Nvro2W>#r#{wI%A6tkw>+QOFv9>5CsggqePKjB5 z6FppW+@ zVq~0Lg-DAz4Vw3YN`K7|uH%v}iE!zjSe& z9WOFYMyE34kSIX*^hlvhn}hs@FYqgCObNdWpGdlRdwZ+y@9(q9=jUhLs|j;rzuiEQ zK88fGNr_oWMKr`51&bi-D7A~AT_k2dxxM4bLEZ?7xefa8Lo&B`2c%Gda$4d(N)q#h-ehL{na4VHEWf#%tM7hM;C_bdi%AD;O; zCCV}gDl%>iu$47-3C8*&2W=AiS(wLWyH!Oei%|R&&#rs(vS1#Y5P^C$e?!bZSi1KS z06N>^q=%RrkfDk-t@p6~l0KakDn>wUQDASB|4?L6E1nBaSS$VTEb6{ALG z?h9gNfhlw(wLyO}UfVc@LJkXwnT#7+2v#J^ujb*NX(E*`y8oVR|ooW#b~>N z6biX4EM|m=puHfecZsy^{!=LQWnnQF3adg9b73+RF&8F6Rs9Em5UQ(V-)QCl0000< KMNUMnLSTZ(ptL3c literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/flowchart.png b/gcastle/docs/image/flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a5b433104e66f9caf878080bc0e9a50e5edc49 GIT binary patch literal 16718 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 literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/hill_climbing.png b/gcastle/docs/image/hill_climbing.png new file mode 100644 index 0000000000000000000000000000000000000000..117cbf4270c031f59b1275cb1dcdf13a54fbb7b5 GIT binary patch literal 152859 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 Y0pKRuLw^wDrT_o{07*qoM6N<$f@36^@&Et; literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/lag.PNG b/gcastle/docs/image/lag.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fa4a57487e777ef1cb5ca76c7ffb11ac33045c06 GIT binary patch literal 5395 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 C$(s}a literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/likelihood.png b/gcastle/docs/image/likelihood.png new file mode 100644 index 0000000000000000000000000000000000000000..bac9d189f2db38c58195215f51c09e03941a49d7 GIT binary patch literal 56784 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 H_$B@iv8wRL literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/pc1.png b/gcastle/docs/image/pc1.png new file mode 100644 index 0000000000000000000000000000000000000000..42b2be57eb36533102800822acc11622ea883b5e GIT binary patch literal 105473 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�~R?i<%YwX3& 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 mHQ%ps#GkMtofnKq!$vr<0%@x5stu7F4 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ƂO*mUQ_SU(dN&y3UK)jQBoq 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 RmHYH(^3p0&6%r=F{|AT>GqnH! literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/pc2.PNG b/gcastle/docs/image/pc2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..4c63c4aa2c08869f8ea86b30a2b42883147efa6a GIT binary patch literal 72661 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 RxP9#fDKUA`N?`;4{{;YR^sxW{ literal 0 HcmV?d00001 diff --git a/gcastle/docs/image/plot.png b/gcastle/docs/image/plot.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e03531f6afd23959cda4d050c12586c43ee097 GIT binary patch literal 26875 zcmZsD1z1(v);2BOz3J{0HXzcSQi_PQ64D|fAl;pUD27=9+WFJKpim6@5WZod};E9}NwSNK-?_5Dg8(5)BO<2NwhWUHI%$ z0Q`V{(@vZP99Yt~l3aKYI4LXkERi$*GOJ`GXcmIa%}dh-q!<1!1WFH1fR zCkL$t>u4UCCTmkDzS&97sOau zt%r+sjjIy_IaGenbwn2A-K%x>+L&$gIk4m=VV2Y3RA(vbP2(M&2|N}wv-`a>6Iiw= zRb{|O=QI7fsE9*WrZDx+k41x(qVd&-gPP81S~w3M+g00inOAa1YH?!reY30g{A@mR z`pc)+!Yv1eUgQZ519`!IpWp}ET*|Gf6JIX~b{}j2jSZYwH!hQSO1gFH6f)UM$qBrsQRR*#b%M7s- zl_Ln-7LF~h^*xj}7K?mQT$Y;3rE6$dW7!hm|{sErH_Pp;dwi=`1x_z{Ljv9a5fy1)IcqcDa0IjhW_gIy0!&ef5! zP<2lIVrxyUEE%&26(+M?Ol$N#9du1-pp?@o%vbZgU{ zpANz3gL+h$1*vm$b6Q%yetruEuT$qG;x9Z#cQRQLN3C-I2LfW^?m}@HIt1eJ$m?Lt zGxLLVCzC%LxXOEL2*ae2zo1`Fe?rZf?7|cmYN%2#Q;!dKa#znq#~Z#5x_R#Y!-s39 zi)Zy=IIS-5ST3D|oPwgvPSwhag}BOCv}f;p+5GZwiLsddmv{FONLR`QzGr&fJv~O6 z=&|AijOV#C7bTm6BlKlI;KO%leCEsOh}d(BA%qbAwHTU|V_*B;)yT z>?|~X;s_|9u1Z%0TR2Z-MPKJWr}TGVe-2idJ$HJaC1EVe^0T3v_cFaA_s;hz{-@&4 zabise^+9l~{7r4~xH6Ke$adMYqS%iTnHet1SGqzxc$=#Mq7uA)@pIr_|&- zV_vExj^S9c3x0Dcx|0M8J!(nHACSWTXlXU5F#B_lM=x1M#|X?*{c$AJh}4{OpFN_H zPo~)H91_{{1)Pjf!>d>`dKO zy&Rqb_WmfP^W1uq@}t_hS}ag@gpa2j){a zwMlzYx%H`IS>|AAH)$y-LiKGwze#tPZ1zLqSQ1bRkgiHm(Xm$F*`&%vuzk6J){*sr zBaYh@pGGLoLrhL${|wW$H);7FZpkkR%K2@tJg$t%iQ!Yb5lO;KOhj}S0+()!&VFu^ zlt@fS_9e1cq@5DcXiC>JF8JX*z4FqvL_e4M+BxB?{?&GG?-5O<9o~7uE0!=4n-tD5 z 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�XoDJuo|vlnEyEi;u3U`=%4}^TvP0GGFX7W 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

F(h;ZVcdu&2;jD(72riMORulB7# zAwZ3)uc@J6m?w!b{mUgwnrcPM$TMyXa5`FLGaF{rtl@CYrDti{cZRf5!wM{Bs)!c_ zIO>j{>BwIxl(kre^utm7(e#0D?*8tsrC|5Y?3B~Y#Zf&XL3X)cdAUG`t+FOWGWy zWGythvzV`&(5F+PyYVCD*m*X1YPq{t`gDSyihrt3iF3K2gmw8IBR`dA?!-F>kg<2# zoUBw#6mDTRUu^)XY8?Wlz@dlBjs0*h)M6p4%!zw32fg#eWRS6*=(wEsQ6`A{YMIH49p|fvMvc>cJiBr!u-p= zO5bDzZZHZ^Ex)Dm*Rc;j zZD_?qCOoU%yydxHzJ`VL`h0Ff!>Ext2KN|?Q&Cw3Z!pAf;`@@B1G%)CFER$8jvmTZ zzdB>G_fwwx;%7C0P>52{Q3%i^8wh>9bo6wfp?&c7??opqiK|atYztnFa$uqocTNaX zMJmi_?VUXKjWA4sdo>b~!{nIBU`_2*Fw{9?CW5z9GgodI=T5+8}B;Cx$G4wfPC?nT(4)UUSz zwJ(h@JyLT?pXjh(uk+*oDOQt*SbuIh{jQtsM4Qh>eyFYG$I=5mgo@xj#&ehV!plb* zlvHLBp`$|pjlJmjFm-In^aO>ut)&gEoWs}>%p^{Mg-b-0KW}T)scNt_Xx(2~?ppBzT|hL3auF3a3m%AF0jVhc=P5jql1DN zFE#7ay7}1}m4*mQ6C8J@Am5NQMl}#z_H*gjd(skL%nQ& z%D5cF>_Og!R;!R-cj{v`4@ZedH)UYJ~+iYyAf1CnCJuZGvFft;P zQgA*r=9m7#=v%S(r?3t97Dn`ky4e;lZs^7J5{o-pAB*^GPWO*j!%-{{R;_5}1fnh` zD}cK$ywbpDW=s7n5WTQHDE=^`4b88Dke=j*K5tyI6>S{_Wmgq45}3Bp^h6&$s*!!A~)V)ntHsmY;jh!>S9#XK8A)lf4%1zyl= z)DDCU1gc*=mSiF5wE31-6KP$?VH-(l;W)p}iO~7Ztkvlm8aIUI>J1os-SIpaTSaC? z^eYOyst?Gx`Ke-&b^&>gp;h)Ps3B1~`LXc7!u4x7RxG9mC3vyIPLt>!BCnRUJox8r zG-Mw=8dAhghYhywG`zSg*@lL*+!^^K2*loJ*eK|4iEOwoRWs2%%lzaA2e*kRDtd5b z!k}bHD3FieoFPo;l$?Y&kv_;({jKR*Yi~fXU)&KS61 zj>#y2)mu56xKHc!QgH z9>n)g$f{hH0pY$skE7I!^VExqd_s_p;73VoL%Y%o@sxWZB>IQ4e<&k^9UsY2vyG}_ z{_E^OVEZdxqQF24tUL0zr>Hls9K0DFsIqBR_$YMJD-OHAk`_@A!TYU0ZG`*^X7<;4 zdw%^~Tpe;2BGg}Mn?sg=*5#GNz9U`!zO%lzOl{B8lNLLxxROu!Z%p9M5clX#jQiJ6 zx?X(vLv&)|;?3axw1!f?TKOE^bc1NkA$4j~1Tc1hJdzWb@%H)i=ZC4v$_V02G&Mb8 zkYQC;wmDtNa9STFd{8?d#Das1`<@zC$=eeokm4bix^OWa9i4pLLa2saV*=qQiU1X) zva&J(SiG^~jG`$yoB6ZhrSpIA~?tnjPpX;%x1P+JAPXvBni^L_4F^Yem2 zQ!xbtYmv5S=HYNo_mxw5G@}KU2`#AUnR8N_7Dyx{AdgWKjN?w%t-E*c3M0<<_Pz^l zjXn>Pq-$wsN<824K)h-RAarqY=@lyu4ad=FYjSr+`vgWh5WD~iYB0li^6i&5S0Nrk zqq^p?)i+NwO_>j8cJxp8SGIR=k>e%3n1p*G?dd3wYzcKEQahKui- zP^&@Q>#1E|9OUR(tbVUe&MK<2r`C8b&*Mmhc?x(njV^0kd`0q-(HgfQW`x~*pY%hJ z9<3q)j-RZV_SAS-*iahBxOy^stZ?tlYoR2sb}3N2IzQP%jyV8OfvY63+rz-q;IeN7 z+i?V}U}tCN)jFmcELxt^{Q)zAl} z%TAfYN6uPkc{rE+S}5N?^D!uM{)b+c*9G(@@2}jYy}IsSFVeg1 zFMc%T93o6wb=r?ueg-SG!i`JEcRi~%9B_9|MWlrUW%K+>w>`ggymirYBS=m6tl{Oi zuw-0&eu}SOzrtHXssSr$Uke347*e2LvOHCN6hzFjy0+Gr)@?QRYGDKRk%d=h-~ug@ z52eKPNB!n5ORmBMLo|Y~B@>xV1Q{j;h)4dn5WYv3iP5=&tm1f(~Wc$<@@X2`2g%lm{^*(q{R?`)^UbuU^>lwG0V-$r80 zkKD~Ym#qQ4EHZ??e!lg--KXA^lhoj2_KSBCT%PS)_4--gS^5QU=IYQn{;)BNWaURW z4{1eno&y6&Vm^NSV$QXFre*mI130Zuo;+#zf@#tO^dInnRc_t7<++Wd;+Af^BFg4j z(zznh4C&jLm+#)xP*;!c+t6P=;uCf>z3e(DO{E^&Z}7{j33L_;7{3p_T3NuRQ-qF* zDJ?qpL6wc~!{lSF=mb5V+=4WGliB=nn40$EFtmwJdd2xFOFOqj9t`F%BO^n1Z_Lys zPe9)^+`$CpP~{zebo@Qr@`~}aAoD|z_C}eG=h^=38rLd+s)1qa`PEAyL%Y&;0n}J* zb_=B_-H!R0cNuO+4^W9!JIGl)p<-$BF@)Z z-9`?$v*?8~$L~Mn#um>he4eq&Dt|FE@x^*Lc0D7kyW(ti^=-Ga^evsrci%G0?w_qb z>}Db7HM2@o6gJ5WcD!KWRTonawwOMBWSs&TbT0_+kJ`~+&QaOMOVla5Uq5V64rjjE zcTEDfx8OWL2~1@WeG8qlHtyo{u&>|XF%%S@>zm0}3cqF;cRl|ME|_@Om`Z@cy{Q#K zM1FY;<|UWq7G=4|`tQ3-U99GkM{fq}R>&l2KF%-X7T^k#kb70$;*H&NdT`d`9z(oW zO0dt(HXeSlRHn6jb@sj>NRwv+H}Eaj_ka+5N_CYbX6SVSE+#6hBjp_7(&&c(WGNy0H0P zX~^Tm%0oR9MX1gx^Z5>3w5Mb#518c#IWm^9s_j?q8g-HWa+4HkMK1QQ#&6SdhD+ut!!|8I|jh z9!VtZ)Dg?q4a~HXixW`Y(}-2zbnxZjxnei0D(WTZIMR?lW#n^8WD&}Tjr1=bnNh+? z)My$}?of4IZpugS@$V*VZu2?qg)flriNw~oS#YhhzI89&;2Wyr);DimmsxDhN^$Fx zedIlzepA-gO)O+L;Z6AEK+)8d6KeS}kTI)9^xB}+trKHoI2tXrP<0XLUPvK!=Tq3u z@W#f*E{(D05}~h^ri@vq9&^?lRgYCl&K9mY#@^3u^-*eYxDcm)gZe3W%avn(;K;3R zEB#*Y(3>E~4QuCA^(*TWmF$4ZG(u$f+U7T#mQQUu_AJR@gYuq?w~Q92~oN-m*KD zA=Tl~{0&dN)Z(N*G!!%?>36+O4B`}ZtL1z9(j>0;q?i4p3E zxz74yargR>vcjgP$`&8@bnEBWdAvM1X8Cg2i`7=U-KH<6%=bK9Prgwr@xIznORYBC zP#6ItO&`BRjL$6YyP|r1k#$-lH;X@08|IFRn-or*IcoNvU&WcC)^oGueONu7-gIDG zSTq~G!=9m9y?bYRgU_ft(yALjv3mpIIw=&9JgoXb^?7Fhz1LKUM|&cUPu9l|I{B=G zkJbl3&bY5nCrpB_MOlj4PGjV`2Ltaq9i?^pXwX(++PiQuUsN{PGyZqEy@QaL^Ar<$Pz*(OfC8o+oiqYA|dB1 zJDw7DLYykFnU|8ce&wVc2tQ3MsHoo{pUNhR^QFGQUrcqM@aXKeAXXSO?o%yRq>G^A z;NuZ8F~?<}K|l!+q(n-(QMyy<5(K0}>F!P?rKGzgq`Nn~bK_mldCqy?^F6=sPuG^c z*IaYW5!blJH6}0ZiR!*7CN5x~k{^<#Ohx$lUMY?bjH3rSGgtCAY`@v)o{6DXXY`Y} z`i1Gpm)NL5ijvvxV&{nyD}TSNwzRae(Qx$fSm(lijipiN(dyiCv^m_vx(sxG(Xgyc3cf;biDzE%meUTPy6Z3zQc+8nsszjZ4=giF-lk&;7 z+}!Igcy?{xqs(CC4qI=pHF5O3a$dFHo+dp%`5uC0|LMpcJO2Z7clW@>ZacZPpL~p* z7MVjX?;Awb#{(?YhHLcV16QR29nmV>-s+Uml50p`>;#*~)C z?;eg04_CvwqbYHalkPhumf$*YgzIs+4#bNzQa}g4SIF36%bd|QnkVWe& zxHXU)k=`G6TJ&7+9U+!87smTm+Eu7b3ULJz9FKuRrq;ah+C4lS zfoG??9ll>_rYSposU_YwPb*K%rwc*jGStws2SauNN>mLpJ;nF{MdczmOn)k>I0U$2 zkd>957`AWRDhvUDK~QN9WZ?n4zsw`TAo(?ynb{wk!eu=tEB!eF-}bmZP#l$WYw;=+ zdW@>ywSDQ`dNImNX6LBE>(X{qT$^HB z1IFwdV+C!-7;kDj&m)(2CQ-gYZNES8(;3jUd|>c$u%tsO>l#wNuA-(@Vbx1!mw&O{ zKr9k=OAeT`Ui76fG~M_)&R@OB_$5VQ_Vg>p-2o04!V@oaW_6F8Hsw)1cAseGm!V%~ zoB5T*D@+4q8(=^4#Uf#716f#i`4lJSUk6s8^9(!q0K&+!4^kQzep;qBHrS+jQRoQw z3q>&!7V-^EkA}yIY^5FsYi%i(nw5ASV!jX4WG%Dv{A&PjX?Ci{c6F_IAgzts|L%Uf zd65{RRKQ}ZI7>U}NG53-07NhrKfE$2e-q4PTv&j8>ryp42|k8#t8n9}Cx$+6%e#u9 z;FRVi!}Q>3GAaZJ+VIQqz< zy|%)fw`7|H!Q};aYXA|%wt5~&=(^tZOECnGZ-UI-;c@5O`fDqW^xl%dFtplC-Db*L z6}77*9ex0_=OFP?s}DS^iWA^i*qiqWus7$M4>q7kpM7U>O^JII)+9oeTpc>8U?T{r zb=*n*_z?x8wf_ga%r*4Y=`-K(9Sb#W=$l$NeP$ep6=1{cpS*dnK+MaiECkhsQ^+<4 zr3alLV4mZHc`*bMvy=0xS%N-3lBT42Y@%+#AF7uLg=xz;GK)*zy=F7o27Y3qrhE%y z*)#3FK}Y&Q3E#nNq({hS7uh3XI!Dtww7JouEP7bmNx%b@g8@AuW6JR|}r?rV$$w$f#%%?<#s zztnv!3TgnJQ-fgk=&*IQI(|32O7eE^0+z@-j@d7QyFpHJ8(k!liU;HR+O}v#cm-tfFX-QSmJW#?3H&eP*rAt&y zLx+(uW_<_=^V^E1!a}{v*0%xF*491J?|h1$KW+CNKN0$x6#L5F8Ae~|XJ^5A37gtM zCUM+AM!0zgz0ztNesmytascrkk?D0kW!?NSaT~$nI=37WTsb1++;-p1v9?NVGm%P| zo}fvP(03*WfeJvGNC`oUuQJw6v%1eQ>;N4(*v0#!a8Q%&=_o~V+H!T)?+LU>va)5i z;8^Q|$Xcqet{@{D3*Ds>s`K@$=V@2<=sQYTk)&opA6uxd%VY-qWZLFCw~cAMm5v^9 z7XNa~H+~$(>qs~z?vJDTd}>`lzh$g*8DlfY?95OZaRAMS6Av-N^J%D8Z%x}dA7a|d zT-^sR2-wJT?)@`gqG0YdWsiL57;*W}dG?bqH2GSovaam02OS&+l2J@q0qb;W z{cO>vo)4jRfIeY8*Vrv3Xv0Y@VTop(Ra!^-8!=3goX4w{DyJ4XtOO+cCIIWcs8bc_`>(WQOG6hSAq!l;#hWlsmEIWj~wP6a{Yv-Q{PPd$I!(n(Hk629Xb3U zJbDNSr-%g}uwbzX(;>G|b=>+PuDzWo?qI_PqVzdRuP#Yu0jSqEW+D_X4;orQsNMT- z=6oBSGDgHlYzCH;xapZ0g3H{Y5Q_`hYIeL7-f?epM;isF8Z zjm@(7Dlwy^o4tkDd+-p8S$sTE$kjnlj~Z+`pm5#ZYqy#qJHbYkK+M0bm{NF5Kx!&N z2a;qPldYiAhZQ0Sd3iaX_}$MVC_UY>jQhR~T^gF=(7K&gb%|a_@OnwV| z5-1BMHASBw%ZDLOrLkvbf)HjV)3X|1mpAuM$-MK^5oR3u#kg?&lAriH;3L-Oe8Pu_ z6h=-??vqgyP~xKFJ_Hf*?IrJ!Cn0EiSSS$VB~Y?H2i#&;HD+TfM?sU1RB~-|jVZ($ ztVH8jO3!G+T^;r&nn2mC3%Q6?+oa?1%_2b^g>O2+y737pWgzsVNZxgLRETdmj*GDt zHninM+O$k4Yv!rZ|O4FDsu*Jr>>;=VWn=ogs!xVs4OxhCpFuiTGD zOb)}U*a^u94w z-kkASiRtOo8$qvwyO(QHeWk|4DKK-v&dyFRVz~)C(VG>nwUyBL^{ytn;?NhDr^vv$ zkY9<&ua_EI(7mg#0a4jElZ~B~b-W_a=WG%Pj zqP(Q<9@V&Mk!kG0L%vJICrhJuUlS8aBYMghx`H~hNq;yZ*ybs zi^m2vJyZ3UB;Vv7j`8EX7OPK6_m!j{7fViz9aw~f05Za{WRn0?I4l3NoU408vr|OS zMljysiRGrPrM`013Ytc#ajY)zl>pvHfY({35JN1@#|mMro*BS{&j2K`F9SK-rdKi1glE_OtA;#WTmb2op1^}}WAhAi5BTdpMo%CL zMiG#7-;iD_J_KdoKtBB{D-}lvGv$-_&NVf%u`Hy*7ULH?4QTfKpc6eWFSi+2%QL^q z8sYHUyLXJ()@c>yqs^}x(+Y6}+(*47vG#L2kQ(o!nVA%CYu+AztHPH-K!z*+iNVS5c#%QyDcSA^|ia7dRq=3U7!AoxiWREvLap;MIp-uantoOZD zHo3=M9jqi+8yOqZG6Yw9 z{My|yFlAK`Jq8N?ccj-`xH)pA$%450y6|Z;QZe2(DD5Urltoe^cTl*ptSws6Z&+wm}>ae4}9qkMH|=UG#W1= z!rSmYn#voqRJPa}&8?lxzWpoGRx|C5W+Vm{8D4{wLl&iT1ffd#tCzKP-w~4w>OynK zaTO6~zpwY$bD8JzXn6jB*CM@^I{@1ROXnfldy#XI3aZ$&>PY}FF`1v6?M2Atay{=FoZg@dWctPG<{4$uw%N?6k1^U+sZB@`Xn2n;5T;!=IjP4wrwAt%){VA%FmE`eXy zd6d=f%!wx^rMOYY(;Wy+G=IWfH6AO}Dxp+(sZKfHi_BuB`+KbnGXvhbPw_#liGrz+ zmjs!W3rBl8CQ2DbmE&X8#a2*Xf4Seo-ULSFxg4%N0GTWZ z>$6>j5~UI(#T%Tzd0zQG1t>z@ByOedERa|M8N?E-C{Bw{AqTc-;jraS$RN$m8VuT z`peG5R@NfYrH_Ag8g%wy60wN(MSnPim%!lUEr>OAcL_m`2x2IKHH@z-p@rnmr|Rc4 zWL1^tc__NEkWay5p$^N=hziP@VPMi;Z=9Y_0i-;8e}EEYC9W`q3O;d#ZC5 z@#0Go@aDs*GgO!Bw$KK4JloYimHI6Oa&t*=Vs8qUF**@26TzDrS4@EgI$lHaGazE} z$0M%CVAxpv77TU_2K+93&gR&rJg46?9i1D4bHHZkm{G)@A&_2}KLKcb&3LCd4 z%{h6kdReW%GmmZM(I1Vgdx#~}*Sr0kUfW4rdN~cTS?ph4)^wEG@svIdl$RNJRu2gn zi+>#C5ss=W0_XJ2`$w4p-*QS&3cMCo4-_r#GL^eF}@jG6JEohX@p8~4^A25Po4V>S_hTT@c zppn^=q5-R0$MZfvclk!xrprMkBG-CH4Qn^GIT>Jc-w2T|K5midxb30r0}np3nrIsa z{#4wpMO#lVZ81pC6k4N~Q&9byiUCrg_=;E?-CE)sd7x+k;m$kazC?Zk{u!&P#h}6A z&w@@?%iSM;KS^+s?^`5;cBp~M2Wg9H40v!H=y%@-OB2;akCSf2%Z10SLuis5B*@`Y z%cWBmMj6j-GeJf$SIMerB$vRGsv|NjZP4zq8p6MHI7Goio+u<-bOL7A-L&@E`F)ak z{1`=GpxGO#U+_RK8uf!x#%IU|?knYr9M`TK<;+wwZLqkdj!<82gwvB3+|Y6k0n}GX zzv@MXJl1G7Z21*Hx3Rb0tK{~A)~VOagh%=-v7yOhrBBsMYHroOv^W@5^C6&+*+OH! zZ+V9BbwJ}w=clB(b$@$FKNA9lK%Pdai&dvx5MSAEjLJ_~z5fDO3C#h&i7{L61t9)y z2-ZZ=M!&gMH!SPseL!mpK?5X(4yY?j{%N{MU4UbixJ5SQ*Lk*#`f|JJqNc)ECFxWm zlsw!Qch;U-s4}x4>LNBiIu7Bu7fm;Ujv)JzWF2p16!*Npt4pI;w*{2N9=IHukbJpg zjTLt?LvV3O>E(T^WBO#HD3W0B%5_I9)Tl2m&7#B0=~G?Pi9v zzHZS|#t|n-Wu4M}BDtA|T@T}CjDNn+?_mwm<`2U8eC*re13@dMuFJJ~*2B79oDzV? zGpIYzKF0WNNsQ5t(oJ4cfesz%8l>;nKZ4nRc(g{*EFnwL1@u;vUNZ%glYp}hOxP3N zUZj>!;aPoOfBEy`cJ4&MgehJ6>5TH!3a2SH_9DNz?}553+>0g;zvj7sU4hc+{{GuF z5LC?xgWisN1LNGc0i6x@h$)()WLa=M7=NIN`4LSdu&MHU?TXiUFW+$cCJv|$P+bSV z84Bf{oocuU&h^kcAI>R8glN_}Js75#aYVnJ?dMPFf({GH`kV_&2n<#>gk!aj*h^K1 zYuS5jSo4mSRci+er$(y;Eu%;5p74%(7pH*3U#$I=_5E$+#4-hW;QitZ*5V}y^YM9h zMb3Uk{o11n{DYIMe->qx2-$RalxTXh&bU1)5-b7I*xrFrMU}`CSOTe|y`pB{SpUcl za|@X|TFBi8ug3?{K(pG>Jf%nT)qQXnFD$FP)3*1)OZ6>OR&d5~BZhTNp9qh!&?q{U zHnM$Xx$_&bjvJsRPkUT!0oRB8J`@ZRT?9>@SAe5o+#9d*;>G990Lj3wa^u29=Hx>s5vu)&M|YPW zMAv^K)n9KyEx7qKfubj_Nkn_i0Vs9lN*LPAp&KluraB#z8R9kTxpbhmbJi%`u7yU3 z?ZKbtN-W59NB$hzrN|q~x21F4I+67(!9h7>%BpS)OzZSdLp-?;#>?oGnGt@^UtlL` zRAG2%Px-TWDlJQju%*~6o+M2dPw3W19(#st9(%v>oY}8SEjf92GoDUUB=FX;m7vrk zL|;+Y1@@s=y1lvv;xC@FFuj!ij@9q5y+vcRMJ>xJKXbp^1O2G_#C90T_FE8lDs@Bg z?8=oL1q`uPKta24`yf&%zTCQD6WlZ$;cSSmJtXke?hkSkp}=hpwCZgySl$)vY%W)lqJhzCIon3Jp73 z>WKaH(&H!lJ0l3n1`*qwN`>iObnmzC+8+s>$<66-7`!r(HqN>RCelpV^Dvt$4F+lA zCJFlTrNflZVQBrg_?f8mtaF2%!h=c32s0&#@YJ>i4L zXi3)cQw_F#?5ZL)FF!I|cGK>-$ldD+j+RxxfLAScSBf2zZ#l8Ht!_&ukf?h53|oCN zbGUGI-zzI+4L5=aZzOLDOodarVVkOksz+9pNG;kRiZ(EVhQ_H|@?~RV>E(R)NpW=_ z7j18!>p^ZGuh>-gTr zwzub?C)}QuKYi}Q5tpzuk-{RJ^6V0k=`N)Hcs;ye*b?eBY6T?>=+r~m{dJsat`7{^-=pa; zGKFH;e8gWT62(A_Nr4zV@zgc~K&i}6*u{2df%#DX%maSg_hIKk$`h#pz^FGTw0}6# zxjcOIG*6F^QKr+_^DqZAxQLse;o&%Vp7L8W)&{H4s{XXhkK{{)oGyvI#;11{^b+nF z9^TL4dZ{e3IC8&vq5dcD4$zY>SiHVN&;&oD2h9zSkddh`nOv%q%VhINXs3s&D6PPK55*B zvH!FV5~}&8&l!@yfuTD0JS(VmL|MCj6~j=%>%%3OA->T2rTfd>%pf;Umbct1LGrL! z4^)b<06bt(N6D6n4C;8dLeG5l+e6MwTLpf~;pb-}U3&-t3eh1?YUl`xE__5D5&J6{ zz7w`niC>4B2`+++pNh4s7+2*RJ0iMGBU~))4i+k>)k8jPM(t+}v57KKvbbnt; zw@Y)rO()YeGij}sizOn*y4AR-nX&SO!59r?zWNnk1X`I$kC2lw}J5;{&bwy*Y;m3hQK$mrn9a{QR-w7_-j4y+V z%{2$_$K6|I!)K6wbs@R1Ch&ULSL}~Myp`4VW*vi38>R@xdef$0P0~7MHYl_Rt9_`3 zGx|k6+)kP^koKt;^@U&KL{_D3sp^^affi|AGEB}Mvp)4;P^({|9bKCF4@sFJIna6Wg+JuM3-_?CLB%MHgrZO0_#~CX!ld)_RU%Y;`_)hI< zX)N*jo2d8D`d=cn^p<|ZakyFSxtq)npNe?N5%oPOy$(Zb(N%=S(1*;8rJ7$4E+_kK zUG54+r(-dwU6i#szi-4R)sEp&}H8Y|n9OP1?!#hiA91VhsDw41Ney=!~kPJzP8D z_>hz5g_m<5-a~|p)_o39yrkY)Q*lK--XRX;OJI3V=$fwfU|Hef$Ezj=5}PaGwV7=C z+oXp_YK$$$;zi-ub+Hmfl^(KJYT?)+XNh^oWU8C_T2*#tHJmQ0tNm)ih^>G?z6m(# z_B5{Tkg6~Blf*A8JeIzD3+Z3&R+SyZvUklkSW2Y4a}{0U{WyB|dMAEmkLvE*{w}i` z)dc#@Sv4yMkA`X!HL1~LLy5tv(VgQ9VP1Vhi6`1AV;QnhHq9mFBru-Gq_`_?2VJSS zI_uZ^Jq`X3dJ*bYh}ULeZZTuUV;e<1)^^_4b?cXzUu5VrSkZ<_;tuWI~E-J=Ig7T3FllZ)bXar>(&*_6`2T;{pH zc63rD$MFh~+$zc`l)9H_+sDr$#3SF7b%Y`l2_%B?;;vnsGks&U!e%b79oUlAqr>Ae95OvIaOBFs-W|AY z8`I)cd=lab6Buz zh@&j(HaCwRo`#(h>Ncd3wqyT2Dhu`>Q|BHRvT{)Eh^*-dqn(wx^}8U8ffsX})MGw=3iNb*e+s17_u_pCsTVvCLV2l{-Vtke z{?OMy8WXiN3txVRDxM_If^Hbk#aylK7_6xGSg$@7lp_fY z^ec{D6wo)p!C~E@kmm%%7B4P%*)9pYEtghV2q%J@pqyIn#pm@Siuw4ge2i<&c#=Q0 zHG401PL7aYvQgQQ%BGEr3!Tjx5XRZ@MeaB*A=CyiF3d(*ui1VE6_HQ7wpch^hWkHl z`-C6y&`9!Moi0g--+dy&^I`leM(4gle{y*WM~nypXZcliqL(cX9)@4E2p&2g11iFA`hdwpq})lMF(HvCC`zJi-GGJs~5wMS+68>k?O zX_|q%Xn5bG=Z^*CV$V>t)1V)Bj*@YOPpJ<32t2Qoc5UU{Q`1CXc0hFSE9yH&P*#Ek z8TLe^mNYhwJ=)1W;@f+&Gb@4vmAk;uKl_s3rRxPH<-U*EHz7)g2UzmQ5;Da~-iF9_ ziySZFLZqD1_RQtUH+`U#2E|Muk7vso+So&$AYN(*(8*0#6k`3GHu=FOM=hj^ha=l( zzp@@^kHkhDdILrRLeHGl-`TycAK-%HCL%0{abNj- zA&~u_Pb9@&>{Z!4;aU`RLd9Ue=P4LhQ|K^BwwxomNcRwm$6$_V>5mP&6;kbvN8&QN zwEmG9Lu8H*;m+pdyCSMqxnwR3%wqM1uKN+YV3g`nfA^wz{W!^{aT2!AO+Dj}rjnQx zqfMWnt;gL_#wM*|bCetD#0{4Z7N^XDG4CSHZRS9~|3U&?c&$H{#9F29%D4&I)WWc( z_BCs(Wx~;H>MN@#DxGat?6xL9+N4|Kz{}LPuc`soC}RPzGhc+)Gx6N&124)tqAuR@ zWym^7_{&HQ`+Ulp!ql{i3kp@HjnU{eTKq`h{SoB?ytba+mR zPZW06O%Sv>G4{6q<+*75lGs3jHRG$&;_L@m>F2PTL4@}N&Mtxw*>E)7uijt5?Xm}e z#*&9*Q?m}^P#_-9*~jN=b9EALo|-jVtZ*)H0u%^ntUGYHZo_F0Cv%Q-V><5dE|V$x zL1QacI2xZGn`ZFS=H+bOGoz}B=*lSnqx4d3d-z@bLx7~rzN&;ZHt`4A>jKM^XAO0kUa;*4Gx zI-ayG!)M^l_G$8+97Qoe{0%~8$(l`Rcf@f)tL9Z0@TU$@D!rA;4Cwl2Eq#2jLl5_h zT%o#ygS0X@VQ5%E3`ApefQU7cz_`%u`e<^;So^kV9K~LYKY1xlS}}MqLu1>IU)#4= z$BgIs=ouO}tiu~t{-HjS*|qp?k4k2yUlb%b`Fpw!MQBN4*4JV~wD>#a4|IxHhOQ!R z9m2^fE2U(1JXvEFc(t@d(Q-~)y}HHK1yWJp7Rt+OPq1L^V)UQ^bS30P2wECdNWgh& zxHB=tz8P>wL`X(?x%}D&DW`7#UY2*8l|MSyltL1f+>nljHjdT-FeJNW^N~rQtAqn; zFrOem`JsN|$BwlN+v^0%SsRnDN#qlD&efMaong#_Y&*x>cJ0+tg7`0qMuWRu zMsB(-Z-7_0^=P6;#XR^h2U6JAp=f!i4bw}#)*s1NkeMa{njoV)xRLL$*6>MLze23b zPkJa`&LQ?omq}@j@u^9<$z@wjmm5>DbzwU$$=hIF&pYFLLI|CP2Tb zw*7T1o(UX!OEx}J=yuXA70|o2vws>|tLhPRvji-cvVPMF0l~`AHY~7!*dpB4G_Mxj z!@7(z6?tVemNH>p^+!1K~^6O4EWxAwoue{`d055eL7%5C2agmr&)NL`$y^aty5sKj{J;Trv$nTsvu`OB^pmhI{Y_`9*ku86#s^D|y%4 zx`U|r0NUH~Gv`l$9mgUB^}B>7Z4xMn8OLX&63lM|QskEjf>iqqf4Pc;v zG|BR7Cra}#Et0$I*j90xBfMR(T;&7Nfu-gri=i`RH(j9r69i}SX8z#JfOeIZ7s{s} zE|BWlA6#pfZRRCu+2Q+|cwu;~{_v1o$7A-Q(BI|Pc*80fGNYIdhy$Q928dXrMV3cB z?DzFSljpBa(3Sh-6ad%dEiay%*7@l+Waq1C!F!1R4k8Xdm6pCduHys9_91o(9S2Wy z9WgnaOltspQUy17K!X9qHvhnePdh<6MAK3UC_WXY)l09A0N*tYkI@{g~f_Eei$G_eODOg5F> zRB0(LE&H!dt)GDeD?C{z%!7sseM6LkF79=Byv*ptJ&)0f!QUXQ1&e2$2D}@pCp>id zS#1f9A7$b@1(8?=4v**ezU%K!#EqY^^Fkp;>mGz45@vHr#ig_3Hteup8}R&k_osFC zxc!Lbjx=mCiYLYEo7FPLnUMX9qhZK%Zlsde&)#tgh{`Y)AM zK;Q`di;e&cq-g6ZE>4OTkCDgWn`<+Xr!v$43(=Ewd8TD~=2_&fBz?wh>F6Q6@Z`HX z+K&)LfEt2=KS3s!2Kj%tO@ERiXgB^SJ^}ClPdf4<>O3y8bT2cS1m)ZI(8O?{3sL>5 zV4EO)#Fa zq%*EOqtUo`IUpML6lbuO)VpmpvaA$DFC*=>O`J`9O`m;yi=wW{Vs#=9I)=gFvB0U* zGR?1S5g{M`qv7}OJL*_D#7)pbRn_jem}dWfJ$#nVTs565Jl?m$7=R5+?B0t_KkI6= zJ!G#=LV?jZxm4r+@#qpeOsp=^Nw?ZntA`{i?%Pe24-QLbe$3iY(-Z3LiQjT)ziX#A zF8q$Su1R<98lkkZ8Yd+;Au!qCX@GYGqb?d%dxbX#afA2{KA6aj3u&PgHe55A@_LSVTx_(OEQ#wO@?pvE8(f z{3WqMkXqWpZLU>NDu(}m|M_##G#jT4tEFB3L2l+N>IRFSZj)S4$N&uEI62&y~TmQQ|nd&RTWTr35o{gJ( zF|$_A5Bp8__y>dHUvi>(q|juwFyV$*5gJ9p8v!z));SoZ0wK5|g29w@AJd01EdZL1L;ktbx%t;%0Q&sqMvBWY=@mSg{;l<9B< z`M^oj%GobT7rd6~a}Px6j^qb*g!Qj?Wb+~@uL}D{m$Y=xzNp?k8%H5r*IFmbf$0YE z-p(1R8@|FQL88vg&wal0GR0WYLGg>mT~^#J#S7}UcaSb0tjd*+KO6 zCXg03YW$HyEur8ySv32u>6;jj)$=cljhuFoG~o1x2W)3b1*DhfV`q4IdsX%`Wf5?M|^5;)J6U}G|$-B zo>67H{K6(;=V{P5iy*!_hf!C|nS?4(3}~-W?6PrG@p{qv3#&EAYSC6u%7GHQu&3gd zG@5vvrSK7(f8Lki7Z)wN-V~Sr|D) zp}6CNbpH{~I2nI7*#Z*&4Lt(oNuQI~ReDy|;Cq+;?w89KNUe=5cJ}IKyu8lTu%GXd zb}o>fZ9=*4`y8deZdx%J-my{9Q&4Oa|hw?qhz1Fmd zbEOvs)hDmC(qHL(uIw3oq}^|uRNv{cK^9er9gI|5J;MuEW|Hv8yLVn~`QqeG3zN>w z3Zpk%t?8fgVgFCl4xFM+1YI~9BmON^`4ZXi;Rc4%_vh{XWeEY)X;Wmj3KQOk7f8Vq ziR!jJtpc}ZR&EqX{!Z5ZEHQ@U|Fyt>fji(V7~M0JCtXfn=b)8_a$HhpBqa zwt-eQWuYjao(bp80OsqzCQpBT-yd9>|LK9X?m-X~!l&d9bMHT_y^x}x+8Ofj)ehe_ z4426-AOJ!&stG-CTKivO9DmvV|H0b*W-+qMbOR0gGrbxwXi9_tZLPhd<-sSgR5PycXBVl1-S;gj2B(wUnS~Wd8m6w+R;c(-^w_@H|Kxy zhJW1ePj)Eou-EsU1AYpe!xuToU@#pAd8k6x&`$W(qA#eK-2RuG_y6;5KoaHP8pJpe^z!jsrsw>O~F2ufUSlH%A6u|-*tBRkjS4JfDg0@e&UZ_(t< zSw~tTyzFNelVneLj;G;X7isetne&H>2L{c#ALl-PbcIN%cUL7ux=6z(KUqpO{NJuT zqs@E9jnTnAj(E4h2&2@6OhYI%UwEWb)o=7b7H`npNRH;$a*GFAmehP2#yjzR7v!51PkN<$)Crb*?LiT0AxpYC^_uFlwj!pbaf2z)L2J zYXQW{@Qx*in!65ly=E10y+%=87F=Z5sKxZYVsqmr1Hb0k=j^bt-w-I`l$vz8G<2Ex zA+;>br#d8HBkoqu2p5g*oGk4sA}TVajts9i&~&b!Xc}mG-7K`n=#Hdn3Jnz&pun`c zA}c5qbs(Akd~s*5`DqJFd9qBij+1^fIZ=})1y4f%s)RKW%aC05LMPV|mrv=jG!MrF z(fk^>Yy|x7AN<=Du<{)Gg;NwwuZ%GkF;(!)!8)_ZCV~dwJLS?F@`Mh&CO9^B$a1fB zleg^n@`*6zsDNfJ2Zgk)omd9LiQ7{CEiSMhd7SBwQC=YDBAH_VwVFJ1u6wNnv|^vX zUT{{^_;9EHxfOv$xc)F`Pp(d5^}%_b0)OEK;Mz?ur%F5%UP@OJPMZFS!xYa0L1;FW zVh zGN|4hE;N5gvrcll4D9z1nc6(2)#;o$J&3}^dZ{(i{te;oG!_N%wFH!NpgRV-hujSGE2)?N@`_|9^`t_x=HiqXcU6b-k!a zO`EZhyS`_V5|5oH;=esQ7p_{aU@nD<2rU)jjPp#B!V*T7bP{yVo>|QqKUHJRE@D*f z4@J+&x^E|LN#imR!V=6z{@n;TFE&ka0`@O~xCS!81HAGb*T^m1|8 zMgJ_dnh7UVb_BOU=gRB{y|EVyB&-nhYKJWnstAMoS>JsiOGTfHJZI z(Ns4^u>(PdLq^Hy7&A(ZT|ImJj-RZ<^wrJaOXoI9gvmT1 zJe9V%H*o)8wyktqL~vskP`i>icYJ%>KrixVZ3e0yx81dRYuC}(?Jvem@k4iL(s=M2 zETqJcgybs0>EOv5Sv^QIQq%TDx^=fw_wuh-!@|8<*t%~-+Of9o|f-6se-O6ga41<_{7A38X9!yH@P@(re`CTf^m!S?(PU79omLgRvH~UwCTWqDAMD z7oMj1k-4zzJfmea_cTC?vP1~eE<=VJN$9^_0R}e3>~@$=@!ux|ejXwV&~Gf_*!MWe ztIQrGJS2~%IlZzL3zbXScE5tO+_$T^)(bhF?MrHEhDNF(XK6XP_itMytw@S1hX<+6vS#OwPB9(~9Ko`=9Nc zAv1`H5zs2l23bqHGe!hzglZ+mwD+?;V?*fOla!Ioq69%6Le^t**~o zmoe6Qp{;iGyie8d3ezbY`#ns^*Uo>wp^s5CR#ftKNDz-FZ`6C9om!dvD@3KuC1hrq zA==CrX;4Evt$1REHhMgsWf1AU65%D;r+n?lSw6N@!|&G&#a}1RH%Z0I6T649)Q@#$ zosrdi(V_K<$m!MHYpwDB3h6UhYLp_X!+nWx|3Qn%kTb@Y$<$wWa)S7ZB14bJOeq-` z#?Vu+)HfQXtT!6{g9S?4HNyyZd}ej z?@Oo`q}?@6sk!;tWjDtN>cRVIk0Lw*_u|l<6T7&X#s=HcZEr(~F|DPQN3t=?!mh9F zc4o9nwcS%adi|zX6;zE8dM*|y(s!#dDgxoYIz9jzV+I`7#@=SX8ckq|J^DYkhddlgewO7gqEMt39r4Uc3|VG9hj&MD-;?D1 zlq~bgjyPDAKle5tn)ICuhzD*}-TTNj}(Cj zi6!~Tj;SabM~AN{M`Z>+gY^kSwVOwmb;xxNqp}NpSZIdmP*ro}UG;w)3FhJX855_6 zflq!b1JVAQ1_t+ylmB^run!RwZQiK@eor{f^P|d6_sr$x*;f{krNX{5ebqDH!uB`) z)@}>ildN@e8y>TEp0U`D4zv4%j|i39d4H-%y;`o*5lQH*-iy>9d1tPm902!|Aoh}1 z#YH{fiES%sVkNZU@OeIX6Ie`y_!J-MX)Odz_4BU;UAP((j;XV(G)%=bU4I2~y8@fb zIy{mhKQYdjFdarFS&&j1VHF5VWu+(lf-yBZf^ViUGvuLPns~M}Z98)OwTG7c1*9R) z=&wqGow?-Q_nZA@H%8(}a^Nv&`0WuhWof}m56zE7>qD(58XYY`lbcLTXYO**`Jb~_8Qer{&`hd z&nS@@8*ZtqNIF|$a^}FF_8~u+BWiGMLZne8wO>H^FIV>FP_L=6l+GMBIkHiyy3uw9x&>6?m{N-@1qScZzY7P`qJA^r-96Q8G-aOS3wx-%l%hN^G4U zUg(q^5`WLe;4ea+j`^Wfd-?n-C zRd!~MkB=%IqbO2+R~TSb+~ax|rI-+)&6APZwXT6`E158Ii<74%itZPkTg=^N54st{5k z7d35dFksOP`RXtUz8HDM_6Hj7uYwB+SYnQK7&?=`{PmWVx^N52j-Z9>Tpxe7(8&+U zY#n(v`}X8QC%peV^MMKMST@LynIVg_+#4%qQZKD((GApQ z_{{h<;y(Rohrz6;ffTQuzVgUE)V?)6ulYeY+Q!}N?xarxTQx=Hf^TDGksmLJ~DYXqhJ znNIz8nQag{ssw3oQ)yCdZmsH0>ljWKD*e>oNwk#W=vC*xT!E+6ba$I{|IUWtxi76I z{!3hpDu!x$Osb?V2Or8XUeCh*Q1Dpp+aw1~C^s_iH7yDutW z1turkWqks9${k^=NshCLpySR~O?%eo?BKw0+wUXNe&?u6K~Yh`J49oJl&gJN_9UPL z4|dwG^r^`T5QTl0Ap#p#<~063uBGTT%5;d&jmrw(YGFO|9~(m3F$qQYDEc&VF>V6% z*j~nf{Kgp>kV=!9!r=$^R?;(g&^yr#?B<`Td&j?BfhY6veoMp_f8_=@nScSa_(mY; z7GqpHU72XK6C&Ga|KU|XFn-@RO z5xTZLTXqKuoPhphcyY`<{Md8KOSW^WWXbztXYNx%p2H6ev8a)%K`a5SAR>%-XBt9RS0B`{Le_$Z= zd0Fxx6_Wi25b(#PsKNjRV=j`rJeti#f-5L66$TJBmDf$1RbJS5%Jy(^X8OR~ogtn; z^XU6QXQfr8Uw`FsdFZE4*NyXtTog?QVUKo?9`jFCrGOb=^L{82hBf;eh%X|)1rxbn zO&D7@9T6StGqbZc{Awqs9^31nH~}4HmQ$r)3M+};4$6yFJ<)d;%9m4R(HsR0XZ=8T z49K(y5WT?Ess&c0ZwBg`Ldll)LgWMJNl;85})%0D3#-BD#Ep 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 F{{T4jtF-_C literal 0 HcmV?d00001 diff --git a/gcastle/docs/notears.md b/gcastle/docs/notears.md new file mode 100644 index 00000000..48dfa29b --- /dev/null +++ b/gcastle/docs/notears.md @@ -0,0 +1,165 @@ +## NOTEARS: Non-combinatorial Optimization via Trace Exponential and Augmented lagRangian for Structure learning + +### 1. 算法介绍 + +估计有向无环图(DAG,也称为贝叶斯网络)的结构是一个具有挑战性的问题,因为DAG的搜索空间是组合的,并且随着节点数量的超指数缩放。现有的方法依赖于各种局部探索来强制无环约束。本算法中,引入了一个不同的策略:将结构学习问题表述为一个完全避免这种组合约束的实矩阵上的纯连续优化问题。替代了传统的组合约束的方式,可以通过优化反复迭代后,得到DAG。 + +### 2. 算法原理 + +NOTEARS 是基于分数的DAG学习方法,将传统的组合优化问题(左)转换为连续程序(右)。虽然左右两侧的问题是等价的,但右边的连续程序消除了对专门算法(为DAG的组合空间上搜索而量身定制)的需要。相反,我们很容易实现利用标准数值算法来处理约束问题,而不需要任何关于图形模型的知识。 + +![formula 1](image/NOTEARS_Formula_1.PNG "formula 01") + +其中G(W)是由加权邻接矩阵W定义的d节点图,将约束 G(W)∈DAGs 改为:h(W)=0,并且规定 h(W)=0 应该满足4个条件: + +> (a) 只有在 W 是 DAG 的情况下,h(W)=0 +> (b) h 的参数约束了 DAG +> (c) h 是实矩阵上的平滑函数 +> (d) h 可求导的 + +#### 2.1 基本概念 + +基本DAG学习问题的表述如下:设 **X**∈R(*n×d*) 是由随机向量 *X=(X1, ... , Xd)* 的 *n* 个独立同分布(IID)观测值组成的数据矩阵。D 表示 DAGs *G=(V, E)* 在 d 节点上的(离散)空间。给定 **X**,我们寻求学习联合分布 P(*X*) 的 DAG G∈D(也称为贝叶斯网络)。我们通过加权邻接矩阵 *W*∈R(*d×d*) 定义结构方程模型(SEM)对 *X* 进行建模。因此,我们将在 *R(d×d)* 上操作,即 *d×d* 实矩阵的连续空间,而不是离散空间 *D*。 + +![formula 2](image/NOTEARS_Formula_2.PNG "formula 02") + +#### 2.2 学习策略 + +##### 2.2.1 建立非循环表征 + +定理1: 矩阵 *W∈R(d×d)* 是 DAG,当且仅当: + +![formula 3](image/NOTEARS_Formula_3.PNG "formula 03") + +其中,h(W) 的简单梯度满足前面 (a)-(d) 的所有需求: + +![formula 4](image/NOTEARS_Formula_4.PNG "formula 04") + +定理1建立了非循环性的平滑代数表征,且该表征是可计算的。 + +##### 2.2.2 等式约束优化 + +我们概述了求解算法。它包括三个步骤: + +> (i) 将约束问题转换为无约束子问题序列 +> (ii) 优化无约束子问题 +> (iii) 阈值 + +完整算法在 Algorithm 1 中概述: + +![algorthm 1](image/NOTEARS_Algorithm_1.PNG "algorthm 01") + +- **用增强拉格朗日求解ECP** + +首先,拉格朗日乘子 *α* 的对偶函数及增强的拉格朗日: + +![formula 5](image/NOTEARS_Formula_5.PNG "formula 05") + +目标是找到解决双重问题的本地解决方案 + +![formula 6](image/NOTEARS_Formula_6.PNG "formula 06") + +- **求解无约束子问题** + +增强的拉格朗日将约束问题转换为无约束问题序列,无约束子问题可以被认为是实向量上的典型最小化问题: + +![formula 7](image/NOTEARS_Formula_7.PNG "formula 07") + +*f(w)* 是目标的平滑部分。我们的目标是高精度地解决上述问题,使 *h(W)* 可以被充分抑制。 + +在 *λ=0* 的特殊情况下,非平滑项消失,问题简单地变成了无约束的平滑最小化,为此,许多有效的数值算法可用,例如L-BFGS。在每个步骤 k,关键的思想是通过光滑项的二次近似找到下降方向: + +![formula 8](image/NOTEARS_Formula_8.PNG "formula 08") + +当 *λ>0* 时,问题变成复合最小化,采用近似拟牛顿(PQN)方法: + +![algorthm 2](image/NOTEARS_Algorithm_2.PNG "algorthm 02") + +- **阈值** + +在回归问题中,通过硬阈值对系数的后处理估计可以证明减少错误发现的数量。我们将边缘权重阈值如下:在获得的固定点 *W(ECP)* 后,给定固定阈值 *ω>0*,将绝对值中小于 *ω* 的任何权重设置为零。该策略还具有“四舍五入”增强拉格朗日数值解的重要效果,因为由于数值精度,可以容忍机器精度附近的一些小偏差(例如 10e-8),而不是严格的 *h(W(ECP))=0* 。 + +### 3. 使用指导 + +#### 3.1 参数说明 + +```yaml +Parameters +---------- + lambda1: float + l1 penalty parameter + loss_type: str + l2, logistic, poisson (three types of loss) + max_iter: int + max num of dual ascent steps + h_tol: float + exit if |h(w_est)| <= htol + rho_max: float + exit if rho >= rho_max + w_threshold: float + drop edge if |weight| < threshold +``` + +#### 3.2 执行配置 + +调用算法有两种模式实现:API 模式、工具模式。 + +##### 3.2.1 API 模式 + +示例文件:`example/notears/notears_demo.py` + +```python +from castle.algorithms import Notears +from castle.datasets import load_dataset +from castle.common import GraphDAG +from castle.metrics import MetricsDAG + +true_dag, X = load_dataset(name='iid_test') +n = Notears() +n.learn(X) +GraphDAG(n.causal_matrix, true_dag) +met = MetricsDAG(n.causal_matrix, true_dag) +print(met.metrics) +``` + +##### 3.2.2 工具模式 + +配置文件:`example/notears/notears.yaml` + +```yaml +dataset_params: + x_file: None + dag_file: None + +model_params: + lambda1: 0.1 + loss_type: 'l2' + max_iter: 100 + h_tol: !!float 1e-8 + rho_max: !!float 1e+16 + w_threshold: 0.3 +``` + +执行文件:`run.py` + +```bash +python run.py -m notears -c example/notears/notears.yaml +``` + +#### 3.3 结果输出 + +预测结果与真实因果图: + +![result 1](image/NOTEARS_result_1.png "result 01") + +```python +{'fdr': 0.0, 'tpr': 1.0, 'fpr': 0.0, 'shd': 0, 'nnz': 20} +``` + +指标说明: + +> *fdr: (reverse + false positive) / prediction positive* +> *tpr: (true positive) / condition positive* +> *fpr: (reverse + false positive) / condition negative* +> *shd: undirected extra + undirected missing + reverse* +> *nnz: prediction positive* diff --git a/gcastle/castle/example/corl1/corl1_demo.py b/gcastle/example/corl1/corl1_demo.py similarity index 98% rename from gcastle/castle/example/corl1/corl1_demo.py rename to gcastle/example/corl1/corl1_demo.py index b12d11ac..655871c2 100644 --- a/gcastle/castle/example/corl1/corl1_demo.py +++ b/gcastle/example/corl1/corl1_demo.py @@ -40,7 +40,7 @@ # rl learn rl = CORL1() -rl.learn(X, dag=true_dag) +rl.learn(X) # plot est_dag and true_dag GraphDAG(rl.causal_matrix, true_dag) diff --git a/gcastle/castle/example/corl2/corl2_demo.py b/gcastle/example/corl2/corl2_demo.py similarity index 98% rename from gcastle/castle/example/corl2/corl2_demo.py rename to gcastle/example/corl2/corl2_demo.py index 34f6b0d2..cc119bea 100644 --- a/gcastle/castle/example/corl2/corl2_demo.py +++ b/gcastle/example/corl2/corl2_demo.py @@ -40,7 +40,7 @@ # rl learn rl = CORL2() -rl.learn(X, dag=true_dag) +rl.learn(X) # plot est_dag and true_dag GraphDAG(rl.causal_matrix, true_dag) diff --git a/gcastle/castle/example/gae/gae_demo.py b/gcastle/example/gae/gae_demo.py similarity index 87% rename from gcastle/castle/example/gae/gae_demo.py rename to gcastle/example/gae/gae_demo.py index beac4f8f..695e471c 100644 --- a/gcastle/castle/example/gae/gae_demo.py +++ b/gcastle/example/gae/gae_demo.py @@ -39,10 +39,10 @@ true_dag, X = dataset.B, dataset.X # graph_auto_encoder learn -ga = GAE() -ga.learn(X, num_encoder_layers=2, num_decoder_layers=2, hidden_size=16, - max_iter=20, h_tol=1e-12, iter_step=300, rho_thres=1e20, rho_multiply=10, - graph_thres=0.2, l1_graph_penalty=1.0, init_iter=5, use_float64=True) +ga = GAE(num_encoder_layers=2, num_decoder_layers=2, hidden_size=16, + max_iter=20, h_tol=1e-12, iter_step=300, rho_thres=1e20, rho_multiply=10, + graph_thres=0.2, l1_graph_penalty=1.0, init_iter=5, use_float64=True) +ga.learn(X) # plot est_dag and true_dag GraphDAG(ga.causal_matrix, true_dag) diff --git a/gcastle/example/gran_dag/gran_dag.yaml b/gcastle/example/gran_dag/gran_dag.yaml new file mode 100644 index 00000000..eedc4f0f --- /dev/null +++ b/gcastle/example/gran_dag/gran_dag.yaml @@ -0,0 +1,33 @@ +dataset_params: + x_file: None # None or .npz or .csv + dag_file: None # None or .npz or .csv + +model_params: + input_dim: 10 # number of variable, X.shape[1] + hidden_num: 2 # number of hidden layers + hidden_dim: 10 # number of dimension per hidden layer + lr: 0.001 # learning rate + iterations: 100000 # times of iteration + batch_size: 64 # batch size of per training of NN + model_name: 'NonLinGaussANM' # name of model, 'NonlinearGauss' or 'NonlinearGaussANM' + nonlinear: 'leaky-relu' # name of Nonlinear activation function + optimizer: 'rmsprop' # Method of optimize + h_threshold: !!float 1e-8 # constrained threshold + gpu: False # whether use gpu + + pns: False # variable number or neighbors number used in the pns + pns_thresh: 0.75 + num_neighbors: None + + normalize: False # whether normalize data + precision: False # whether use Double precision + random_seed: 42 + jac_thresh: True + lambda_init: 0.0 + mu_init: 0.001 + omega_lambda: 0.0001 + omega_mu: 0.9 + stop_crit_win: 100 + edge_clamp_range: 0.0001 + norm_prod: 'paths' + square_prod: False \ No newline at end of file diff --git a/gcastle/castle/example/gran_dag/gran_demo.py b/gcastle/example/gran_dag/gran_demo.py similarity index 90% rename from gcastle/castle/example/gran_dag/gran_demo.py rename to gcastle/example/gran_dag/gran_demo.py index 1d04f812..2610eb61 100644 --- a/gcastle/castle/example/gran_dag/gran_demo.py +++ b/gcastle/example/gran_dag/gran_demo.py @@ -27,7 +27,7 @@ from castle.common import GraphDAG from castle.metrics import MetricsDAG from castle.datasets import DAG, IIDSimulation -from castle.algorithms import GraN_DAG, Parameters +from castle.algorithms import GraN_DAG # load data weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=20, weight_range=(0.5, 2.0), seed=1) @@ -35,11 +35,11 @@ dag, x = dataset.B, dataset.X # Initialize parameters for gran_dag -parameters = Parameters(input_dim=x.shape[1]) +# parameters = Parameters(input_dim=x.shape[1]) # Instantiation algorithm -gnd = GraN_DAG(params=parameters) -gnd.learn(data=x, target=dag) +gnd = GraN_DAG(input_dim=x.shape[1]) +gnd.learn(data=x) # plot predict_dag and true_dag GraphDAG(gnd.causal_matrix, dag, 'result') diff --git a/gcastle/castle/example/lingam/direct_demo.py b/gcastle/example/lingam/direct_demo.py similarity index 100% rename from gcastle/castle/example/lingam/direct_demo.py rename to gcastle/example/lingam/direct_demo.py diff --git a/gcastle/castle/example/lingam/ica_demo.py b/gcastle/example/lingam/ica_demo.py similarity index 100% rename from gcastle/castle/example/lingam/ica_demo.py rename to gcastle/example/lingam/ica_demo.py diff --git a/gcastle/castle/example/masked/mcsl_demo.py b/gcastle/example/masked/mcsl_demo.py similarity index 90% rename from gcastle/castle/example/masked/mcsl_demo.py rename to gcastle/example/masked/mcsl_demo.py index 74b500a5..89e56735 100644 --- a/gcastle/castle/example/masked/mcsl_demo.py +++ b/gcastle/example/masked/mcsl_demo.py @@ -39,10 +39,10 @@ true_dag, X = dataset.B, dataset.X # mcsl learn -mc = MCSL() -mc.learn(X, iter_step=1000, rho_thres=1e14, init_rho=1e-5, - rho_multiply=10, graph_thres=0.5, l1_graph_penalty=2e-3, - degree=2, use_float64=False) +mc = MCSL(iter_step=1000, rho_thres=1e14, init_rho=1e-5, + rho_multiply=10, graph_thres=0.5, l1_graph_penalty=2e-3, + use_float64=False) +mc.learn(X) # plot est_dag and true_dag GraphDAG(mc.causal_matrix, true_dag) diff --git a/gcastle/castle/example/notears/golem_demo.py b/gcastle/example/notears/golem_demo.py similarity index 100% rename from gcastle/castle/example/notears/golem_demo.py rename to gcastle/example/notears/golem_demo.py diff --git a/gcastle/castle/example/notears/low_rank_demo.py b/gcastle/example/notears/low_rank_demo.py similarity index 100% rename from gcastle/castle/example/notears/low_rank_demo.py rename to gcastle/example/notears/low_rank_demo.py diff --git a/gcastle/castle/example/notears/mlp_demo.py b/gcastle/example/notears/mlp_demo.py similarity index 100% rename from gcastle/castle/example/notears/mlp_demo.py rename to gcastle/example/notears/mlp_demo.py diff --git a/gcastle/example/notears/notears.yaml b/gcastle/example/notears/notears.yaml new file mode 100644 index 00000000..1846553c --- /dev/null +++ b/gcastle/example/notears/notears.yaml @@ -0,0 +1,11 @@ +dataset_params: + x_file: None # None or .npz or .csv + dag_file: None # None or .npz or .csv + +model_params: + lambda1: 0.1 # l1 penalty parameter + loss_type: 'l2' # l2, logistic, poisson + max_iter: 100 # max num of dual ascent steps + h_tol: !!float 1e-8 # exit if |h(w_est)| <= htol + rho_max: !!float 1e+16 # exit if rho >= rho_max + w_threshold: 0.3 # drop edge if |weight| < threshold diff --git a/gcastle/castle/example/notears/notears_demo.py b/gcastle/example/notears/notears_demo.py similarity index 100% rename from gcastle/castle/example/notears/notears_demo.py rename to gcastle/example/notears/notears_demo.py diff --git a/gcastle/castle/example/notears/sob_demo.py b/gcastle/example/notears/sob_demo.py similarity index 100% rename from gcastle/castle/example/notears/sob_demo.py rename to gcastle/example/notears/sob_demo.py diff --git a/gcastle/example/pc/pc.yaml b/gcastle/example/pc/pc.yaml new file mode 100644 index 00000000..7951db3f --- /dev/null +++ b/gcastle/example/pc/pc.yaml @@ -0,0 +1,6 @@ +dataset_params: + x_file: None # None or .npz or .csv + dag_file: None # None or .npz or .csv + +model_params: + alpha: 0.05 # Significance level diff --git a/gcastle/castle/example/pc/pc_demo.py b/gcastle/example/pc/pc_demo.py similarity index 91% rename from gcastle/castle/example/pc/pc_demo.py rename to gcastle/example/pc/pc_demo.py index e82e828e..b8fb7473 100644 --- a/gcastle/castle/example/pc/pc_demo.py +++ b/gcastle/example/pc/pc_demo.py @@ -31,16 +31,15 @@ # simulation for pc -weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=20, weight_range=(0.5, 2.0), seed=1) +weighted_random_dag = DAG.erdos_renyi(n_nodes=5, n_edges=10, weight_range=(0.5, 2.0), seed=1) dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', sem_type='gauss') true_dag, X = dataset.B, dataset.X # PC learn pc = PC() -pc.learn(X) +pc.learn(X, data_type='continues') # plot predict_dag and true_dag -GraphDAG(pc.causal_matrix) GraphDAG(pc.causal_matrix, true_dag, 'result_pc') # calculate accuracy diff --git a/gcastle/example/rl/rl.yaml b/gcastle/example/rl/rl.yaml new file mode 100644 index 00000000..f8e97804 --- /dev/null +++ b/gcastle/example/rl/rl.yaml @@ -0,0 +1,47 @@ +dataset_params: + x_file: None # None or .npz or .csv + dag_file: None # None or .npz or .csv + +model_params: + encoder_type: 'TransformerEncoder' # type of encoder used + hidden_dim: 64 # actor LSTM num_neurons + num_heads: 16 # actor input embedding + num_stacks: 6 # actor LSTM num_neurons + residual: True # whether to use residual for gat encoder + + decoder_type: 'SingleLayerDecoder' # type of decoder used + decoder_activation: 'tanh' # activation for decoder + decoder_hidden_dim: 16 # hidden dimension for decoder + use_bias: True # Whether to add bias term when calculating decoder logits + use_bias_constant: True # Whether to add bias term as CONSTANT when calculating decoder logits + bias_initial_value: False # Initial value for bias term when calculating decoder logits + + batch_size: 64 # batch size for training + input_dimension: 64 # dimension of reshaped vector + normalize: True # whether the inputdata shall be normalized + transpose: True # whether the true graph needs transposed + score_type: 'BIC' # score functions + reg_type: 'LR' # regressor type (in combination wth score_type) + lambda_iter_num: 1000 # how often to update lambdas + lambda_flag_default: True # with set lambda parameters; true with default strategy and ignore input bounds + score_bd_tight: True # if bound is tight, then simply use a fixed value, rather than the adaptive one + lambda1_update: 1 # increasing additive lambda1 + lambda2_update: 10 # increasing multiplying lambda2 + score_lower: 0.0 # lower bound on lambda1 + score_upper: 0.0 # upper bound on lambda1 + lambda2_lower: -1 # lower bound on lambda2 + lambda2_upper: -1 # upper bound on lambda2 + + seed: 8 # seed + nb_epoch: 20000 # nb epoch + lr1_start: 0.001 # actor learning rate + lr1_decay_step: 5000 # lr1 decay step + lr1_decay_rate: 0.96 # lr1 decay rate + alpha: 0.99 # update factor moving average baseline + init_baseline: -1.0 # initial baseline - REINFORCE + temperature: 3.0 # pointer_net initial temperature + C: 10.0 # pointer_net tan clipping + l1_graph_reg: 0.0 # L1 graph regularization to encourage sparsity + + inference_mode: True # switch to inference mode when model is trained + verbose: False # print detailed logging or not diff --git a/gcastle/castle/example/rl/rl_demo.py b/gcastle/example/rl/rl_demo.py similarity index 96% rename from gcastle/castle/example/rl/rl_demo.py rename to gcastle/example/rl/rl_demo.py index 1d1ba535..f7c50477 100644 --- a/gcastle/castle/example/rl/rl_demo.py +++ b/gcastle/example/rl/rl_demo.py @@ -39,8 +39,8 @@ true_dag, X = dataset.B, dataset.X # rl learn -rl = RL() -rl.learn(X, dag=true_dag, lambda_flag_default=True) +rl = RL(lambda_flag_default=True) +rl.learn(X) # plot est_dag and true_dag GraphDAG(rl.causal_matrix, true_dag) diff --git a/gcastle/example/ttpm/ttpm.yaml b/gcastle/example/ttpm/ttpm.yaml new file mode 100644 index 00000000..5179cbaf --- /dev/null +++ b/gcastle/example/ttpm/ttpm.yaml @@ -0,0 +1,10 @@ +dataset_params: + x_file: None # None or .csv + dag_file: None # None or .npz or .csv, CSV file does not contain table header + topology_file: None # None or .npz or .csv, CSV file does not contain table header + +model_params: + delta: 0.1 # Time decaying coefficient for the exponential kernel + epsilon: 1 # BIC penalty coefficient + max_hop: 2 # The maximum considered hops in the topology + penalty: 'BIC' # penalty method diff --git a/gcastle/castle/example/ttpm/ttpm_demo.py b/gcastle/example/ttpm/ttpm_demo.py similarity index 84% rename from gcastle/castle/example/ttpm/ttpm_demo.py rename to gcastle/example/ttpm/ttpm_demo.py index f41e2387..ff51e98c 100644 --- a/gcastle/castle/example/ttpm/ttpm_demo.py +++ b/gcastle/example/ttpm/ttpm_demo.py @@ -30,14 +30,15 @@ # Data Simulation for TTPM true_causal_matrix = DAG.erdos_renyi(n_nodes=10, n_edges=10) -topology_matrix = Topology.erdos_renyi(n_nodes=5, n_edges=5) +topology_matrix = Topology.erdos_renyi(n_nodes=20, n_edges=20) simulator = THPSimulation(true_causal_matrix, topology_matrix, - mu_range=(0.0005, 0.001), alpha_range=(0.005, 0.007)) -X = simulator.simulate(T=10000, max_hop=2) + mu_range=(0.00005, 0.0001), + alpha_range=(0.005, 0.007)) +X = simulator.simulate(T=25000, max_hop=2) # TTPM modeling -ttpm = TTPM(topology_matrix) -ttpm.learn(X, max_hop=2) +ttpm = TTPM(topology_matrix, max_hop=2) +ttpm.learn(X) print(ttpm.causal_matrix) # plot est_dag and true_dag diff --git a/gcastle/package.md b/gcastle/package.md new file mode 100644 index 00000000..ec5af69e --- /dev/null +++ b/gcastle/package.md @@ -0,0 +1,87 @@ +# gCastle + +## Introduction + +`gCastle` is a causal structure learning toolchain developed by [Huawei Noah's Ark Lab](https://www.noahlab.com.hk/#/home). The package contains various functionality related to causal learning and evaluation, including: + +* Data generation and processing: data simulation, data reading operators, and data pre-processing operators (such as prior injection and variable selection). +* Causal structure learning: causal structure learning methods, including both classic and recently developed methods, especially gradient-based ones that can handle large problems. +* Evaluation metrics: various commonly used metrics for causal structure learning, including F1, SHD, FDR, TPR, FDR, NNZ, etc. + +## Algorithm List + +| Algorithm | Category (based on data) | Description | +| :--: | :-- | :-- | +| [PC](https://arxiv.org/abs/math/0510436) | IID | A classic causal discovery algorithm based on conditional independence tests | +| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | A direct learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | +| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | An ICA-based learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | +| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | A gradient-based algorithm for linear data models (typically with least-squares loss) | +| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using neural network modeling for non-linear causal relationships | +| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using Sobolev space modeling for non-linear causal relationships | +| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | Adapting NOTEARS for large problems with low-rank causal graphs | +| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | A more efficient version of NOTEARS that can reduce number of optimization iterations | +| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | A gradient-based algorithm using neural network modeling for non-linear additive noise data | +| [MCSL](https://arxiv.org/abs/1910.08527) | IID | A gradient-based algorithm for non-linear additive noise data by learning the binary adjacency matrix| +| [GAE](https://arxiv.org/abs/1911.07420) | IID | A gradient-based algorithm using graph autoencoder to model non-linear causal relationships| +| [RL](https://arxiv.org/abs/1906.04477) | IID | A RL-based algorithm that can work with flexible score functions (including non-smooth ones) | +| CORL1 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | +| CORL2 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | +| TTPM | EVENT SEQUENCE | A causal structure learning algorithm based on Topological Hawkes process for spatio-temporal event sequences | + +## Installation + +### Dependencies + +gCastle requires: + +* python (>= 3.6) +* tqdm (>= 4.48.2) +* numpy (>= 1.19.1) +* pandas (>= 0.22.0) +* scipy (>= 1.4.1) +* scikit-learn (>= 0.21.1) +* matplotlib (>=2.1.2) +* python-igraph (>= 0.8.2) +* loguru (>= 0.5.3) +* networkx (>= 2.5) +* torch (>= 1.4.0) +* tensorflow (>= 1.15.0) + +### PIP installation + +```bash +pip install gcastle +``` + +## Usage Example (PC algorithm) + +```python +from castle.common import GraphDAG +from castle.metrics import MetricsDAG +from castle.datasets import IIDSimulation, DAG +from castle.algorithms import PC + +# data simulation, simulate true causal dag and train_data. +weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, + weight_range=(0.5, 2.0), seed=1) +dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', + sem_type='gauss') +true_causal_matrix, X = dataset.B, dataset.X + +# structure learning +pc = PC() +pc.learn(X) + +# plot predict_dag and true_dag +GraphDAG(pc.causal_matrix, true_causal_matrix) + +# calculate metrics +mt = MetricsDAG(pc.causal_matrix, true_causal_matrix) +print(mt.metrics) +``` + +You can visit [examples](https://github.com/huawei-noah/trustworthyAI/tree/master/gcastle) to find more examples. + +## Next Up & Contributing + +You can find more news about [gCastle](https://github.com/huawei-noah/trustworthyAI/tree/master/gcastle) on the github website. diff --git a/gcastle/packages/gcastle-1.0.0-py3-none-any.whl b/gcastle/packages/gcastle-1.0.1-py3-none-any.whl similarity index 59% rename from gcastle/packages/gcastle-1.0.0-py3-none-any.whl rename to gcastle/packages/gcastle-1.0.1-py3-none-any.whl index 4f7e1ff31204784a519bfd6f192ee1b70d8a1ff5..76b6347e0c9b46afb5ac9fbf28bff0304a2c6519 100644 GIT binary patch delta 67398 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 A=4.48.2 -numpy>=1.19.2 +numpy>=1.19.1 pandas>=0.22.0 scipy>=1.4.1 scikit-learn>=0.21.1 @@ -8,4 +8,4 @@ python-igraph>=0.8.2 loguru>=0.5.3 networkx>=2.5 torch>=1.4.0 -tensorflow==1.15.0 \ No newline at end of file +tensorflow>=1.15.0 \ No newline at end of file diff --git a/gcastle/run.py b/gcastle/run.py new file mode 100644 index 00000000..cbafd7d2 --- /dev/null +++ b/gcastle/run.py @@ -0,0 +1,140 @@ +# coding=utf-8 +# Copyright (C) 2021. Huawei Technologies Co., Ltd. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import yaml +import argparse +import numpy as np +import pandas as pd + +from castle.common import GraphDAG +from castle.metrics import MetricsDAG +from castle.datasets import load_dataset + + +parser = argparse.ArgumentParser(description='Generic runner') +parser.add_argument('--model', '-m', + dest='model_name', + choices=['pc', 'gran_dag', 'direct_lingam', 'ica_lingam', + 'notears', 'notears_mlp', 'notears_sob', + 'notears_low_rank', 'notears_golem', + 'gae', 'mcsl', 'rl', 'corl1', 'corl2', 'ttpm'], + help='name of algorithm', + default='rl') +parser.add_argument('--config', '-c', + dest="filename", + metavar='FILE', + help='path to the config file', + default='example/rl/rl.yaml') + +args = parser.parse_args() +with open(args.filename, 'r') as file: + try: + params_config = yaml.safe_load(file) + except yaml.YAMLError as exc: + print(exc) + +x_file = params_config['dataset_params']['x_file'] +dag_file = params_config['dataset_params']['dag_file'] + +if x_file != 'None': + if args.model_name == 'ttpm': + if x_file[-4:] == '.csv': + X = pd.read_csv(x_file, header=0) + else: + raise ValueError('Invalid file type {}.'.format(x_file)) + + topology_file = params_config['dataset_params']['topology_file'] + if topology_file[-4:] == '.npz': + topology_data = np.load(topology_file) + topology_matrix = np.mat(topology_data) + elif topology_file[-4:] == '.csv': + topology_data = np.loadtxt(topology_file, delimiter=',') + topology_matrix = np.mat(topology_data) + else: + raise ValueError('Invalid file type {}.'.format(topology_file)) + else: + if x_file[-4:] == '.npz': + X = np.load(x_file) + elif x_file[-4:] == '.csv': + X = np.loadtxt(x_file, delimiter=',') + else: + raise ValueError('Invalid file type {}.'.format(x_file)) + + if dag_file == 'None': + true_dag = None + else: + if dag_file[-4:] == '.npz': + true_dag = np.load(dag_file) + elif dag_file[-4:] == '.csv': + true_dag = np.loadtxt(dag_file, delimiter=',') + else: + raise ValueError('Invalid file type {}.'.format(dag_file)) +else: + if args.model_name == 'ttpm': + true_dag, topology_matrix, X = load_dataset(name='thp_test') + else: + true_dag, X = load_dataset(name='iid_test') + +# Instantiation algorithm and learn dag +if args.model_name == 'gran_dag': + from castle.algorithms import GraN_DAG + + g = GraN_DAG(**params_config['model_params']) + g.learn(data=X) + +elif args.model_name == 'pc': + from castle.algorithms import PC + + g = PC(**params_config['model_params']) + g.learn(X) + +elif args.model_name == 'notears': + from castle.algorithms import Notears + + g = Notears(**params_config['model_params']) + g.learn(data=X) + +elif args.model_name == 'rl': + from castle.algorithms import RL + + g = RL(**params_config['model_params']) + g.learn(data=X, dag=true_dag) + +elif args.model_name == 'ttpm': + from castle.algorithms import TTPM + + g = TTPM(topology_matrix, **params_config['model_params']) + g.learn(X) + +else: + raise ValueError('Invalid algorithm name: {}.'.format(args.model_name)) + +# plot and evaluate predict_dag and true_dag +if true_dag is not None: + if args.model_name == 'ttpm': + GraphDAG(g.causal_matrix.values, true_dag) + m = MetricsDAG(g.causal_matrix.values, true_dag) + print(m.metrics) + else: + GraphDAG(g.causal_matrix, true_dag) + m = MetricsDAG(g.causal_matrix, true_dag) + print(m.metrics) + +else: + if args.model_name == 'ttpm': + GraphDAG(g.causal_matrix.values) + else: + GraphDAG(g.causal_matrix) diff --git a/gcastle/setup.py b/gcastle/setup.py index ab5ecfff..01d948dc 100644 --- a/gcastle/setup.py +++ b/gcastle/setup.py @@ -8,27 +8,26 @@ sys.exit("Sorry, Python < 3.6 is not supported.") -with open("README.md", "r") as fh: +with open("package.md", "r", encoding='utf-8') as fh: long_desc = fh.read() setuptools.setup( name="gcastle", - version="1.0.0", - # packages=["gcastle"], + version="1.0.1", include_package_data=True, python_requires=">=3.6", author="Huawei Noah's Ark Lab", author_email="zhangkeli1@huawei.com", - description="Pipeline for causal structure learning", + description="gCastle is the fundamental package for causal structure learning with Python.", long_description=long_desc, long_description_content_type="text/markdown", - url="https://gitlab.huawei.com/gtsbrain/project/causal_discovery/pcastle", + url="https://github.com/huawei-noah/trustworthyAI/tree/master/gcastle", packages=setuptools.find_packages(), - license="Apache license", + license="Apache License 2.0", classifiers=[ "Programming Language :: Python :: 3", - "License :: OSI Approved :: Apache License", + "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", ], install_requires=[ @@ -42,7 +41,7 @@ "loguru>=0.5.3", "networkx>=2.5", "torch>=1.4.0", - "tensorflow==1.15.0", + "tensorflow>=1.15.0", ], ) From 7d22ec186a125929bd1d0f9929e1aaace8e03e44 Mon Sep 17 00:00:00 2001 From: yanxinyi620 Date: Sat, 29 May 2021 16:40:25 +0800 Subject: [PATCH 2/5] update ttpm evaluation README --- gcastle/README.cn.md | 8 +- gcastle/castle/algorithms/ttpm/ttpm.py | 47 +++++---- gcastle/castle/datasets/simulation.py | 8 +- gcastle/castle/metrics/evaluation.py | 126 ++++++++++++++++++++++--- gcastle/example/ttpm/ttpm_demo.py | 2 +- 5 files changed, 155 insertions(+), 36 deletions(-) diff --git a/gcastle/README.cn.md b/gcastle/README.cn.md index f31d905e..b2188db3 100644 --- a/gcastle/README.cn.md +++ b/gcastle/README.cn.md @@ -6,7 +6,7 @@ ## 简介 -`gCastle`是诺亚方舟实验室自研的因果结构学习工具链,主要的功能和愿景包括: +`gCastle`是[华为诺亚方舟实验室](https://www.noahlab.com.hk/#/home)自研的因果结构学习工具链,主要的功能和愿景包括: * 数据生成及处理: 包含各种模拟数据生成算子,数据读取算子,数据处理算子(如先验灌入,变量选择,CRAM)。 * 因果图构建: 提供了一个因果结构学习python算法库,包含了主流的因果学习算法以及最近兴起的基于梯度的因果结构学习算法。 @@ -95,4 +95,10 @@ print(mt.metrics) ## 合作和贡献 +这是`gCastle`的第一个发布版本,我们将持续对相关代码及文档进行完善和优化。下面是我们针对下一个版本的完善和优化计划(备注:下一个版本预计在2021年6月发布): + +* 更完善的文档说明:包括每个算法基本原理的介绍,使用gCastle工具快速设计因果结构学习实验的简明手册,更易读的API说明。 +* 算法库拓展:新增`GES`,`HPCI`,`TTPM`等因果结构学习算法,并提供简易的可配置脚本辅助进行相应算法的调用和运行。 +* 真实场景数据集:将陆续公开一批来源于真实AIOPS场景的时间序列和事件序列数据集,其中真实的因果图标注来源于业务专家经验。 + 欢迎大家使用`gCastle`. 该项目尚处于起步阶段,欢迎各个经验等级的贡献者。有任何疑问及建议,包括修改bug、贡献算法、完善文档等,请在社区提交issue,我们会及时回复交流。 diff --git a/gcastle/castle/algorithms/ttpm/ttpm.py b/gcastle/castle/algorithms/ttpm/ttpm.py index 390abddb..29b16d0c 100644 --- a/gcastle/castle/algorithms/ttpm/ttpm.py +++ b/gcastle/castle/algorithms/ttpm/ttpm.py @@ -13,16 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. - +import logging import pandas as pd import numpy as np -from tqdm import tqdm import networkx as nx from itertools import product from castle.common import BaseLearner +logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s') + + class TTPM(BaseLearner): """ TTPM Algorithm. @@ -44,11 +46,13 @@ class TTPM(BaseLearner): max_hop: positive int, default=6 The maximum considered hops in the topology, - when ``max_hop=1``, it is divided by nodes, regardless of topology. + when ``max_hop=0``, it is divided by nodes, regardless of topology. penalty: str, default=BIC Two optional values: 'BIC' or 'AIC'. + max_iter: int + Maximum number of iterations. Examples -------- @@ -69,7 +73,7 @@ class TTPM(BaseLearner): """ def __init__(self, topology_matrix, delta=0.1, epsilon=1, - max_hop=6, penalty='BIC'): + max_hop=0, penalty='BIC', max_iter=20): BaseLearner.__init__(self) assert isinstance(topology_matrix, np.ndarray),\ 'topology_matrix should be np.matrix object' @@ -84,6 +88,7 @@ def __init__(self, topology_matrix, delta=0.1, epsilon=1, self._delta = delta self._max_hop = max_hop self._epsilon = epsilon + self._max_iter = max_iter def learn(self, tensor, *args, **kwargs): """ @@ -153,12 +158,12 @@ def _start_init(self, tensor): self._ne_grouped = self.tensor.groupby('node') self._decay_effects = np.zeros( - [len(self._event_names), self._max_hop]) # will be used in EM. + [len(self._event_names), self._max_hop+1]) # will be used in EM. self._max_s_t = tensor['timestamp'].max() self._min_s_t = tensor['timestamp'].min() - for k in tqdm(range(self._max_hop)): + for k in range(self._max_hop+1): self._decay_effects[:, k] = tensor.groupby('event').apply( lambda i: ((((1 - np.exp( -self._delta * (self._max_s_t - i['timestamp']))) / self._delta) @@ -196,7 +201,7 @@ def _map_event_to_index(event_names, base_event_names): """ return np.array(list(map(lambda event_name: np.where(base_event_names == event_name)[0][0], - tqdm(event_names)))) + event_names))) def _hill_climb(self): """ @@ -217,10 +222,14 @@ def _hill_climb(self): edge_mat = np.eye(self._N, self._N) result = self._em(edge_mat) l_ret = result[0] - while 1: + + for num_iter in range(self._max_iter): + + logging.info('[iter {}]: likelihood_score = {}'.format(num_iter, l_ret)) + stop_tag = True - for new_edge_mat in tqdm(list( - self._one_step_change_iterator(edge_mat))): + for new_edge_mat in list( + self._one_step_change_iterator(edge_mat)): new_result = self._em(new_edge_mat) new_l = new_result[0] # Termination condition: @@ -233,13 +242,15 @@ def _hill_climb(self): if stop_tag: return result, edge_mat + + return result, edge_mat def _get_effect_tensor_decays(self): - self._effect_tensor_decays = np.zeros([self._max_hop, + self._effect_tensor_decays = np.zeros([self._max_hop+1, len(self.tensor), len(self._event_names)]) - for k in range(self._max_hop): + for k in range(self._max_hop+1): self._get_effect_tensor_decays_each_hop(k) def _get_effect_tensor_decays_each_hop(self, k): @@ -247,7 +258,7 @@ def _get_effect_tensor_decays_each_hop(self, k): j = 0 pre_effect = np.zeros(self._N) tensor_array = self.tensor.values - for item_ind in tqdm(range(len(self.tensor))): + for item_ind in range(len(self.tensor)): sub_n, start_t, ala_i, times = tensor_array[ item_ind, [0, 1, 2, 3]] last_sub_n, last_start_t, last_ala_i, last_times = \ @@ -313,7 +324,7 @@ def _em(self, edge_mat): np.zeros(len(self._event_names)) # Initialize alpha:(nxn),mu:(nx1) and L - alpha = np.ones([self._max_hop, len(self._event_names), + alpha = np.ones([self._max_hop+1, len(self._event_names), len(self._event_names)]) alpha = alpha * edge_mat mu = np.ones(len(self._event_names)) @@ -333,7 +344,7 @@ def _em(self, edge_mat): # Calculate the second part of the likelihood lambda_for_i = np.zeros(len(self.tensor)) + mu[i] - for k in range(self._max_hop): + for k in range(self._max_hop+1): lambda_for_i += np.matmul( self._effect_tensor_decays[k, :], alpha[k, :, i].T) @@ -355,7 +366,7 @@ def _em(self, edge_mat): mu[i] = ((mu[i] / lambda_for_i) * x_i).sum() / self._T # update alpha for j in pa_i: - for k in range(self._max_hop): + for k in range(self._max_hop+1): upper = ((alpha[k, j, i] * ( self._effect_tensor_decays[k, :, j])[ind] / lambda_for_i) * x_i).sum() @@ -369,11 +380,11 @@ def _em(self, edge_mat): if self._penalty == 'AIC': return l_init - (len(self._event_names) + self._epsilon * edge_mat.sum() - * self._max_hop), alpha, mu + * (self._max_hop+1)), alpha, mu elif self._penalty == 'BIC': return l_init - (len(self._event_names) + self._epsilon * edge_mat.sum() - * self._max_hop) * np.log( + * (self._max_hop+1)) * np.log( self.tensor['times'].sum()) / 2, alpha, mu else: raise ValueError("The penalty's value should be BIC or AIC.") diff --git a/gcastle/castle/datasets/simulation.py b/gcastle/castle/datasets/simulation.py index 145e713e..30266450 100644 --- a/gcastle/castle/datasets/simulation.py +++ b/gcastle/castle/datasets/simulation.py @@ -608,9 +608,8 @@ def simulate(self, T, max_hop=1, beta=10): alpha = np.random.uniform(*self._alpha_range, [N, N]) alpha = alpha * self._causal_matrix - alpha = np.ones([max_hop, N, N]) * alpha + alpha = np.ones([max_hop+1, N, N]) * alpha - events = dict() immigrant_events = dict() for node in self._topo.nodes: immigrant_events[node] = self._trigger_events(mu, 0, T, beta) @@ -621,7 +620,7 @@ def simulate(self, T, max_hop=1, beta=10): offspring_events = dict() for node in tqdm(self._topo.nodes): offspring_events[node] = [] - for k in range(max_hop): + for k in range(max_hop+1): k_base_events = [] for neighbor in self._get_k_hop_neighbors( self._topo, node, k): @@ -649,8 +648,9 @@ def _trigger_events(intensity_vec, start_time, duration, beta): events = [] for i, intensity in enumerate(intensity_vec): if intensity: + trigger_time = start_time while True: - trigger_time = round(start_time + np.random.exponential( + trigger_time = round(trigger_time + np.random.exponential( 1 / intensity)) if trigger_time > start_time + duration: break diff --git a/gcastle/castle/metrics/evaluation.py b/gcastle/castle/metrics/evaluation.py index 6dd93b49..d6e14b05 100644 --- a/gcastle/castle/metrics/evaluation.py +++ b/gcastle/castle/metrics/evaluation.py @@ -15,9 +15,36 @@ import copy import numpy as np +import pandas as pd class MetricsDAG(object): + """ + Compute various accuracy metrics for B_est. + true positive(TP): an edge estimated with correct direction. + true nagative(TN): an edge that is neither in estimated graph nor in true graph. + false positive(FP): an edge that is in estimated graph but not in the true graph. + false negative(FN): an edge that is not in estimated graph but in the true graph. + reverse = an edge estimated with reversed direction. + + fdr: (reverse + FP) / (TP + FP) + tpr: TP/(TP + FN) + fpr: (reverse + FP) / (TN + FP) + shd: undirected extra + undirected missing + reverse + nnz: TP + FP + precision: TP/(TP + FP) + recall: TP/(TP + FN) + F1: 2*(recall*precision)/(recall+precision) + gscore: max(0, (TP-FP))/(TP+FN), A score ranges from 0 to 1 + + Parameters + ---------- + B_est: np.ndarray + [d, d] estimate, {0, 1, -1}, -1 is undirected edge in CPDAG. + B_true: np.ndarray + [d, d] ground truth graph, {0, 1}. + """ + def __init__(self, B_est, B_true): self.B_est = copy.deepcopy(B_est) self.B_true = copy.deepcopy(B_true) @@ -27,11 +54,6 @@ def __init__(self, B_est, B_true): @staticmethod def _count_accuracy(B_est, B_true, decimal_num=4): """ - Compute various accuracy metrics for B_est. - true positive = predicted association exists in condition in correct direction. - reverse = predicted association exists in condition in opposite direction. - false positive = predicted association does not exist in condition. - Parameters ---------- B_est: np.ndarray @@ -45,16 +67,25 @@ def _count_accuracy(B_est, B_true, decimal_num=4): ------ metrics: dict fdr: float - (reverse + false positive) / prediction positive + (reverse + FP) / (TP + FP) tpr: float - (true positive) / condition positive + TP/(TP + FN) fpr: float - (reverse + false positive) / condition negative - shd: float + (reverse + FP) / (TN + FP) + shd: int undirected extra + undirected missing + reverse - nnz: float - prediction positive + nnz: int + TP + FP + precision: float + TP/(TP + FP) + recall: float + TP/(TP + FN) + F1: float + 2*(recall*precision)/(recall+precision) + gscore: float + max(0, (TP-FP))/(TP+FN), A score ranges from 0 to 1 """ + # trans diagonal element into 0 for i in range(len(B_est)): if B_est[i, i] == 1: @@ -112,8 +143,79 @@ def _count_accuracy(B_est, B_true, decimal_num=4): missing_lower = np.setdiff1d(cond_lower, pred_lower, assume_unique=True) shd = len(extra_lower) + len(missing_lower) + len(reverse) - mt = {'fdr': fdr, 'tpr': tpr, 'fpr': fpr, 'shd': shd, 'nnz': pred_size} + # trans cpdag [-1, 0, 1] to [0, 1], -1 is undirected edge in CPDAG + for i in range(len(B_est)): + for j in range(len(B_est[i])): + if B_est[i, j] == -1: + B_est[i, j] = 1 + B_est[j, i] = 1 + + W_p = pd.DataFrame(B_est) + W_true = pd.DataFrame(B_true) + + gscore = MetricsDAG._cal_gscore(W_p, W_true) + precision, recall, F1 = MetricsDAG._cal_precision_recall(W_p, W_true) + + mt = {'fdr': fdr, 'tpr': tpr, 'fpr': fpr, 'shd': shd, 'nnz': pred_size, + 'precision': precision, 'recall': recall, 'F1': F1, 'gscore': gscore} for i in mt: mt[i] = round(mt[i], decimal_num) return mt + + @staticmethod + def _cal_gscore(W_p, W_true): + """ + Parameters + ---------- + W_p: pd.DataDrame + [d, d] estimate, {0, 1, -1}, -1 is undirected edge in CPDAG. + W_true: pd.DataDrame + [d, d] ground truth graph, {0, 1}. + + Return + ------ + score: float + max(0, (TP-FP))/(TP+FN), A score ranges from 0 to 1 + """ + + num_true = W_true.sum(axis=1).sum() + assert num_true!=0 + + # true_positives + num_tp = (W_p + W_true).applymap(lambda elem:1 if elem==2 else 0).sum(axis=1).sum() + # False Positives + Reversed Edges + num_fn_r = (W_p - W_true).applymap(lambda elem:1 if elem==1 else 0).sum(axis=1).sum() + score = np.max((num_tp-num_fn_r,0))/num_true + + return score + + @staticmethod + def _cal_precision_recall(W_p, W_true): + """ + Parameters + ---------- + W_p: pd.DataDrame + [d, d] estimate, {0, 1, -1}, -1 is undirected edge in CPDAG. + W_true: pd.DataDrame + [d, d] ground truth graph, {0, 1}. + + Return + ------ + precision: float + TP/(TP + FP) + recall: float + TP/(TP + FN) + F1: float + 2*(recall*precision)/(recall+precision) + """ + + assert(W_p.shape==W_true.shape and W_p.shape[0]==W_p.shape[1]) + TP = (W_p + W_true).applymap(lambda elem:1 if elem==2 else 0).sum(axis=1).sum() + TP_FP = W_p.sum(axis=1).sum() + TP_FN = W_true.sum(axis=1).sum() + precision = TP/TP_FP + recall = TP/TP_FN + F1 = 2*(recall*precision)/(recall+precision) + + return precision, recall, F1 diff --git a/gcastle/example/ttpm/ttpm_demo.py b/gcastle/example/ttpm/ttpm_demo.py index ff51e98c..990c76bc 100644 --- a/gcastle/example/ttpm/ttpm_demo.py +++ b/gcastle/example/ttpm/ttpm_demo.py @@ -34,7 +34,7 @@ simulator = THPSimulation(true_causal_matrix, topology_matrix, mu_range=(0.00005, 0.0001), alpha_range=(0.005, 0.007)) -X = simulator.simulate(T=25000, max_hop=2) +X = simulator.simulate(T=3600*24, max_hop=2) # TTPM modeling ttpm = TTPM(topology_matrix, max_hop=2) From 6f54267ac6da527ebb48a6706b34ce5fedb0e32c Mon Sep 17 00:00:00 2001 From: yanxinyi620 Date: Sat, 29 May 2021 19:30:35 +0800 Subject: [PATCH 3/5] recovering readme --- gcastle/README.cn.md | 83 ++++++++++++++++++++------------------------ gcastle/README.md | 83 ++++++++++++++++++++------------------------ 2 files changed, 74 insertions(+), 92 deletions(-) diff --git a/gcastle/README.cn.md b/gcastle/README.cn.md index b2188db3..3e488b52 100644 --- a/gcastle/README.cn.md +++ b/gcastle/README.cn.md @@ -2,7 +2,7 @@ [English Version](./README.md) -1.0.1 版本发布 +1.0.0 版本发布 ## 简介 @@ -13,59 +13,53 @@ * 因果评价: 提供了常用的因果结构学习性能评价指标,包括F1, SHD, FDR, TPR, FDR, NNZ等。 + ## 算法列表 | 算法 | 数据分类 | 说明 |状态 | | :--: | :-- | :-- | :-- | -| [PC](https://arxiv.org/abs/math/0510436) | IID | 一种基于独立性检验的经典因果发现算法 | v1.0.1 | -| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | 一种线性非高斯无环模型的直接学习方法 | v1.0.1 | -| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | 一种线性非高斯无环模型的因果学习算法 | v1.0.1 | -| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | 一种基于梯度、针对线性数据模型的因果结构学习算法 | v1.0.1 | -| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID| 一种深度可微分、基于神经网络建模的因果结构学习算法 | v1.0.1 | -| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | 一种深度可微分、基于Sobolev空间建模的因果结构学习算法 | v1.0.1 | -| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | 基于low rank假定、针对线性数据模型的因果结构学习算法 | v1.0.1 | -| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | 一种基于NOTEARS、通过减少优化循环次数提升训练效率的因果结构学习算法 | v1.0.1 | -| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | 一种深度可微分、针对非线性加性噪声数据模型的因果结构学习算法 | v1.0.1 | -| [MCSL](https://arxiv.org/abs/1910.08527) | IID | 一种基于掩码梯度的因果结构学习算法 | v1.0.1 | -| [GAE](https://arxiv.org/abs/1911.07420) | IID | 一种基于图自编码器的因果发现算法 | v1.0.1 | -| [RL](https://arxiv.org/abs/1906.04477) | IID | 一种基于强化学习的因果发现算法 | v1.0.1 | -| CORL1 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.1 | -| CORL2 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.1 | +| [PC](https://arxiv.org/abs/math/0510436) | IID | 一种基于独立性检验的经典因果发现算法 | v1.0.0 | +| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | 一种线性非高斯无环模型的直接学习方法 | v1.0.0 | +| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | 一种线性非高斯无环模型的因果学习算法 | v1.0.0 | +| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | 一种基于梯度、针对线性数据模型的因果结构学习算法 | v1.0.0 | +| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID| 一种深度可微分、基于神经网络建模的因果结构学习算法 | v1.0.0 | +| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | 一种深度可微分、基于Sobolev空间建模的因果结构学习算法 | v1.0.0 | +| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | 基于low rank假定、针对线性数据模型的因果结构学习算法 | v1.0.0 | +| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | 一种基于NOTEARS、通过减少优化循环次数提升训练效率的因果结构学习算法 | v1.0.0 | +| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | 一种深度可微分、针对非线性加性噪声数据模型的因果结构学习算法 | v1.0.0 | +| [MCSL](https://arxiv.org/abs/1910.08527) | IID | 一种基于掩码梯度的因果结构学习算法 | v1.0.0 | +| [GAE](https://arxiv.org/abs/1911.07420) | IID | 一种基于图自编码器的因果发现算法 | v1.0.0 | +| [RL](https://arxiv.org/abs/1906.04477) | IID | 一种基于强化学习的因果发现算法 | v1.0.0 | +| CORL1 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.0 | +| CORL2 | IID | 一种基于强化学习搜索因果序的因果发现方法 | v1.0.0 | | TTPM | EVENT SEQUENCE | 一种针对时空事件序列的基于时空Hawkes Process的因果结构学习算法 | 开发中 | -| HPCI | EVENT SEQUENCE | 一种针对时序事件序列的基于Hawkes Process和CI tests的因果结构学习算法 | 开发中 | +| [HPCI](https://arxiv.org/abs/2105.03092) | EVENT SEQUENCE | 一种针对时序事件序列的基于Hawkes Process和CI tests的因果结构学习算法 | 开发中 | | PCTS | TS | 一种针对时间序列数据的基于CI tests的因果结构学习算法(PC算法的时序版本) | 开发中 | + ## 获取和安装 ### 依赖 - -* python (>= 3.6) -* tqdm (>= 4.48.2) -* numpy (>= 1.19.1) -* pandas (>= 0.22.0) -* scipy (>= 1.4.1) -* scikit-learn (>= 0.21.1) -* matplotlib (>=2.1.2) -* python-igraph (>= 0.8.2) -* loguru (>= 0.5.3) -* networkx (>= 2.5) -* torch (>= 1.4.0) -* tensorflow (>= 1.15.0) - -### 获取安装包(也可直接源码安装) - -下载:[castle-1.0.1-py3-none-any.whl](./packages/gcastle-1.0.1-py3-none-any.whl) +- python (>= 3.6) +- tqdm (>= 4.48.2) +- numpy (>= 1.19.2) +- pandas (>= 0.22.0) +- scipy (>= 1.4.1) +- scikit-learn (>= 0.21.1) +- matplotlib (>=2.1.2) +- python-igraph (>= 0.8.2) +- loguru (>= 0.5.3) +- networkx (>= 2.5) +- torch (>= 1.4.0) +- tensorflow (>= 1.15.0) ### PIP安装 - ```bash -pip install gcastle-1.0.1-py3-none-any.whl +pip install gcastle ``` ## 算法使用指导 - -以PC算法为例: - +以PC算法为例: ```python from castle.common import GraphDAG from castle.metrics import MetricsDAG @@ -73,9 +67,9 @@ from castle.datasets import IIDSimulation, DAG from castle.algorithms import PC # data simulation, simulate true causal dag and train_data. -weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, +weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, weight_range=(0.5, 2.0), seed=1) -dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', +dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', sem_type='gauss') true_causal_matrix, X = dataset.B, dataset.X @@ -84,21 +78,18 @@ pc = PC() pc.learn(X) # plot predict_dag and true_dag -GraphDAG(pc.causal_matrix, true_causal_matrix) +GraphDAG(pc.causal_matrix, true_causal_matrix, 'result') # calculate metrics mt = MetricsDAG(pc.causal_matrix, true_causal_matrix) print(mt.metrics) ``` - -大家可访问 [examples](./example) 获取更多的示例. +大家可访问 [examples](./castle/example) 获取更多的示例. ## 合作和贡献 - 这是`gCastle`的第一个发布版本,我们将持续对相关代码及文档进行完善和优化。下面是我们针对下一个版本的完善和优化计划(备注:下一个版本预计在2021年6月发布): - * 更完善的文档说明:包括每个算法基本原理的介绍,使用gCastle工具快速设计因果结构学习实验的简明手册,更易读的API说明。 * 算法库拓展:新增`GES`,`HPCI`,`TTPM`等因果结构学习算法,并提供简易的可配置脚本辅助进行相应算法的调用和运行。 * 真实场景数据集:将陆续公开一批来源于真实AIOPS场景的时间序列和事件序列数据集,其中真实的因果图标注来源于业务专家经验。 -欢迎大家使用`gCastle`. 该项目尚处于起步阶段,欢迎各个经验等级的贡献者。有任何疑问及建议,包括修改bug、贡献算法、完善文档等,请在社区提交issue,我们会及时回复交流。 +欢迎大家使用`gCastle`. 该项目尚处于起步阶段,欢迎各个经验等级的贡献者。有任何疑问及建议,包括修改bug、贡献算法、完善文档等,请在社区提交issue,我们会及时回复交流。 \ No newline at end of file diff --git a/gcastle/README.md b/gcastle/README.md index c153c020..08c13c18 100644 --- a/gcastle/README.md +++ b/gcastle/README.md @@ -2,12 +2,11 @@ [中文版本](./README.cn.md) -Version 1.0.1 released. +Version 1.0.1 will be released (2021/05/31). ## Introduction -`gCastle` is a causal structure learning toolchain developed by [Huawei Noah's Ark Lab](https://www.noahlab.com.hk/#/home). The package contains various functionality related to causal learning and evaluation, including: - +`gCastle` is a causal structure learning toolchain developed by [Huawei Noah's Ark Lab](https://www.noahlab.com.hk/#/home). The package contains various functionality related to causal learning and evaluation, including: * Data generation and processing: data simulation, data reading operators, and data pre-processing operators(such as prior injection and variable selection). * Causal structure learning: causal structure learning methods, including both classic and recently developed methods, especially gradient-based ones that can handle large problems. * Evaluation metrics: various commonly used metrics for causal structure learning, including F1, SHD, FDR, TPR, FDR, NNZ, etc. @@ -16,55 +15,49 @@ Version 1.0.1 released. | Algorithm | Category (based on data) | Description | Status | | :--: | :-- | :-- | :-- | -| [PC](https://arxiv.org/abs/math/0510436) | IID | A classic causal discovery algorithm based on conditional independence tests | v1.0.1 | -| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | A direct learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.1 | -| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | An ICA-based learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.1 | -| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | A gradient-based algorithm for linear data models (typically with least-squares loss) | v1.0.1 | -| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using neural network modeling for non-linear causal relationships | v1.0.1 | -| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using Sobolev space modeling for non-linear causal relationships | v1.0.1 | -| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | Adapting NOTEARS for large problems with low-rank causal graphs | v1.0.1 | -| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | A more efficient version of NOTEARS that can reduce number of optimization iterations | v1.0.1 | -| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | A gradient-based algorithm using neural network modeling for non-linear additive noise data | v1.0.1 | -| [MCSL](https://arxiv.org/abs/1910.08527) | IID | A gradient-based algorithm for non-linear additive noise data by learning the binary adjacency matrix| v1.0.1 | -| [GAE](https://arxiv.org/abs/1911.07420) | IID | A gradient-based algorithm using graph autoencoder to model non-linear causal relationships| v1.0.1 | -| [RL](https://arxiv.org/abs/1906.04477) | IID | A RL-based algorithm that can work with flexible score functions (including non-smooth ones) | v1.0.1 | -| CORL1 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.1 | -| CORL2 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.1 | +| [PC](https://arxiv.org/abs/math/0510436) | IID | A classic causal discovery algorithm based on conditional independence tests | v1.0.0 | +| [DirectLiNGAM](https://arxiv.org/abs/1101.2489) | IID | A direct learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.0 | +| [ICALiNGAM](https://dl.acm.org/doi/10.5555/1248547.1248619) | IID | An ICA-based learning algorithm for linear non-Gaussian acyclic model (LiNGAM) | v1.0.0 | +| [NOTEARS](https://arxiv.org/abs/1803.01422) | IID | A gradient-based algorithm for linear data models (typically with least-squares loss) | v1.0.0 | +| [NOTEARS-MLP](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using neural network modeling for non-linear causal relationships | v1.0.0 | +| [NOTEARS-SOB](https://arxiv.org/abs/1909.13189) | IID | A gradient-based algorithm using Sobolev space modeling for non-linear causal relationships | v1.0.0 | +| [NOTEARS-lOW-RANK](https://arxiv.org/abs/2006.05691) | IID | Adapting NOTEARS for large problems with low-rank causal graphs | v1.0.0 | +| [GOLEM](https://arxiv.org/abs/2006.10201) | IID | A more efficient version of NOTEARS that can reduce number of optimization iterations | v1.0.0 | +| [GraN_DAG](https://arxiv.org/abs/1906.02226) | IID | A gradient-based algorithm using neural network modeling for non-linear additive noise data | v1.0.0 | +| [MCSL](https://arxiv.org/abs/1910.08527) | IID | A gradient-based algorithm for non-linear additive noise data by learning the binary adjacency matrix| v1.0.0 | +| [GAE](https://arxiv.org/abs/1911.07420) | IID | A gradient-based algorithm using graph autoencoder to model non-linear causal relationships| v1.0.0 | +| [RL](https://arxiv.org/abs/1906.04477) | IID | A RL-based algorithm that can work with flexible score functions (including non-smooth ones) | v1.0.0 | +| CORL1 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.0 | +| CORL2 | IID | A RL- and order-based algorithm that improves the efficiency and scalability of previous RL-based approach | v1.0.0 | | TTPM | EVENT SEQUENCE | A causal structure learning algorithm based on Topological Hawkes process for spatio-temporal event sequences | under development. | -| HPCI | EVENT SEQUENCE | A causal structure learning algorithm based on Hawkes process and CI tests for event sequences | under development. | +| [HPCI](https://arxiv.org/abs/2105.03092) | EVENT SEQUENCE | A causal structure learning algorithm based on Hawkes process and CI tests for event sequences | under development. | | PCTS | TS | A causal structure learning algorithm based on CI tests for time series data (time series version of the PC algorithm) | under development. | + ## Installation ### Dependencies - gCastle requires: +- python (>= 3.6) +- tqdm (>= 4.48.2) +- numpy (>= 1.19.2) +- pandas (>= 0.22.0) +- scipy (>= 1.4.1) +- scikit-learn (>= 0.21.1) +- matplotlib (>=2.1.2) +- python-igraph (>= 0.8.2) +- loguru (>= 0.5.3) +- networkx (>= 2.5) +- torch (>= 1.4.0) +- tensorflow (>= 1.15.0) -* python (>= 3.6) -* tqdm (>= 4.48.2) -* numpy (>= 1.19.1) -* pandas (>= 0.22.0) -* scipy (>= 1.4.1) -* scikit-learn (>= 0.21.1) -* matplotlib (>=2.1.2) -* python-igraph (>= 0.8.2) -* loguru (>= 0.5.3) -* networkx (>= 2.5) -* torch (>= 1.4.0) -* tensorflow (>= 1.15.0) - -### Obtain the installation package (installing from source code) - -Download:[castle-1.0.1-py3-none-any.whl](./packages/gcastle-1.0.1-py3-none-any.whl) ### PIP installation - ```bash -pip install gcastle-1.0.1-py3-none-any.whl +pip install gcastle ``` ## Usage Example (PC algorithm) - ```python from castle.common import GraphDAG from castle.metrics import MetricsDAG @@ -72,9 +65,9 @@ from castle.datasets import IIDSimulation, DAG from castle.algorithms import PC # data simulation, simulate true causal dag and train_data. -weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, +weighted_random_dag = DAG.erdos_renyi(n_nodes=10, n_edges=10, weight_range=(0.5, 2.0), seed=1) -dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', +dataset = IIDSimulation(W=weighted_random_dag, n=2000, method='linear', sem_type='gauss') true_causal_matrix, X = dataset.B, dataset.X @@ -83,20 +76,18 @@ pc = PC() pc.learn(X) # plot predict_dag and true_dag -GraphDAG(pc.causal_matrix, true_causal_matrix) +GraphDAG(pc.causal_matrix, true_causal_matrix, 'result') # calculate metrics mt = MetricsDAG(pc.causal_matrix, true_causal_matrix) print(mt.metrics) ``` +You can visit [examples](./castle/example) to find more examples. -You can visit [examples](./example) to find more examples. ## Next Up & Contributing - -This is the first released version of `gCastle`, we'll be continuously complementing and optimizing the code and documentation. The following items are the main additions planned to be released in the next version (~late June 2021): - -* A more sound documentation: including introductions to each algorithm, a guide on how to quickly design an experiment/test using the 'gCastle' tools, more easily readable APIs, etc. +This is the first released version of `gCastle`, we'll be continuously complementing and optimizing the code and documentation. The following items are the main additions planned to be released in the next version (~ June 2021): +* A more sound documentation: including introductions to each algorithm, a guide on how to quickly design an experiment/test using the `gCastle` tools, more easily readable APIs, etc. * Extension of the algorithm library: add new algorithms including `GES`, `HPCI`, and `TTPM`, and easily configurable scripts to help learn causal structures using the corresponding algorithms. * Real-world datasets: add a couple of interesting time series and event sequences datasets collected from AIOPS scenarios where the true graphs are obtained based on expertise. From 4d1072d34713b8d97aebd571a6b1ce1b00a5158c Mon Sep 17 00:00:00 2001 From: yanxinyi <41045439+yanxinyi620@users.noreply.github.com> Date: Mon, 31 May 2021 10:45:59 +0800 Subject: [PATCH 4/5] Delete .gitignore --- gcastle/.gitignore | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 gcastle/.gitignore diff --git a/gcastle/.gitignore b/gcastle/.gitignore deleted file mode 100644 index bd1a3075..00000000 --- a/gcastle/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -# Python -*.pyc -*.pyo -*.pyd -*.so -*.egg -*.egg-info -dist -build -.idea - -# Specific files -log -web From 6c23fc3c3b5f3db3be1069cc267d734558c14323 Mon Sep 17 00:00:00 2001 From: yanxinyi <41045439+yanxinyi620@users.noreply.github.com> Date: Mon, 31 May 2021 10:46:33 +0800 Subject: [PATCH 5/5] Update independence_tests.py --- gcastle/castle/common/independence_tests.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gcastle/castle/common/independence_tests.py b/gcastle/castle/common/independence_tests.py index dc9dc520..5962f92c 100644 --- a/gcastle/castle/common/independence_tests.py +++ b/gcastle/castle/common/independence_tests.py @@ -1,4 +1,17 @@ -# -*-coding: utf-8 -*- +# coding=utf-8 +# Copyright (C) 2021. Huawei Technologies Co., Ltd. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import math import numpy as np