This repository contains implementation code needed to reproduce the data generation process of the framework described in the:
by Luka Jakovljevic1,2, Dimitre Kostadinov1, Armen Aghasaryan1 and Themis Palpanas2
1Nokia Bell Labs, France
2University of Paris, France
that is presented on The 10th International Conference on Complex Networks and their Applications
in Madrid, Spain (November 30 - December 2, 2021) "complexnetworks.org"
and appears in Volume 1015 of Springer - Studies in Computational Intelligence Series 📘
contact: luka.jakovljevic@nokia.com
Complex systems, such as 5G telecommunication networks, generate thousands of information about the system state each minute. The described causal model is able to capture the dependencies between observable network alerts but more importantly, to mimic the system faulty behavior, by encoding the appearance, propagation and persistence of faults 🤖
Why is this important? Because such a model can assist network experts in reasoning on the state of real system, given partial observations. Furthermore, it could allows generating labelled synthetic alerts, in order to benchmark causal discovery and network diagnosis techniques, to ensure that they will work with unseen real data with similar characteristics. Lastly, to create previously unseen faulty scenarios in the system (counterfactual reasoning) 🧠
folder datasets
contains samples of synthetic alerts with known causal relations
module causal_digital_twin.py
contains functions that construct a Causal Model
notebook Demo_one_dataset.ipynb
demonstrates the creation of one dataset (one Causal Model i.e. input for a Digital Twin)
notebook Generate_all_datasets.ipynb
allows simulation of all datasets used in the paper
generate_DAG (...)
generates a random DAG of desired size and edge probability
parametrize_DAG (...)
parametrizes DAG with SCM probabilities described in paper
time_series (...)
builds Causal Model (SCM) and synthesizes time series of desired length as depicted on Figure 2 in paper
- numpy
- pandas
- networkx
- matplotlib.pyplot
- random
- sklearn
Please cite the above mentioned paper when using the framework.
Code is published under
BSD 3-Clause License
(for more info read "LICENSE file")
Copyright (c) 2021, Nokia
All rights reserved.