During the project, our team designed, developed, tested, and applied AutoCD. A summary description of work follows:
1) Literature review regarding the available causal discovery algorithms for several different settings, scenarios, type of data (e.g. cross-sectional, time-series, continuous, discrete, mixed) and causal assumptions (causal sufficiency, no causal sufficiency, etc.). Algorithms for causal discovery, modeling, inference, utility functions, visualizations, and all other required subsystems and functionalities were researched.
2) Testing of the publicly available algorithms to explore their limits, functionalities, computational scalability, and their other properties. This is a necessary steps before these methods are incorporated within our system. Numerous bugs and problems of publicly available algorithms and libraries were actually discovered during this step.
3) Design of the architecture of AutoCD, deciding the main modules, classes, interconnections, and functionalities to prioritize.
4) Implementation of the functionalities of AutoCD. Implementation included both designing, inventing, and implementing new algorithms that tie together different components, as well as incorporating existing components and algorithms from the literature.
5) Implementation and testing of a synthetic data generator that is capable of producing and generating realistic synthetic data from a known causal model. Such a generator is important to test the capabilities of causal discovery algorithms on realistic data stemming from a known gold standard causal models.
6) Engineering, preprocessing, transforming, and experimenting with real data from a 5G commercial network to make the data ML-ready.
7) Testing and application of AutoCD on synthetic data; testing and application of AutoCD on the real industrial dataset. Induction of new causal knowledge, interpretation of the results for non-expert users, and knowledge transfer to the industrial associate.
8) Packaging of AutoCD as a publicly available, open-source library, that includes the synthetic data, the synthetic data generator, tutorials, and documentation.
The main achievement of the project is the solution to numerous engineering, technological, and algorithmic problems that led to the implementation of a software library that automates several steps of causal discovery. In addition, the library has been successfully applied on an important and challenging industrial problem.