py-why / causal-learn

Causal Discovery in Python. It also includes (conditional) independence tests and score functions.
https://causal-learn.readthedocs.io/en/latest/
MIT License
1.12k stars 183 forks source link

Passing domain knowledge #4

Closed dg46 closed 1 year ago

dg46 commented 2 years ago

I am planning to get rid of Java dependencies in cause2e by replacing py-causal with causal-learn for the discovery step.

However, my applications require passing domain knowledge in the form of required or forbidden edges in the causal graph. Py-causal and Tetrad have a great interface for domain knowledge. Will this be included in causal-learn, too? In the docs, I have only found possibilities for LiNGAM-type models, but not for GES or PC.

Thanks for finally translating Tetrad to Python!

dg46 commented 2 years ago

Oops, found it for PC. Must have overlooked it, sorry. I will try this out, but it would still be helpful to have the functionality for other algorithm types.

kunwuz commented 2 years ago

Thanks for your feedback. Cause2e is a fantastic package! :)

In the future, we will include 'background_knowledge' for other methods. We will update you when these functions are available. Thanks for your interest in causal-learn!

dg46 commented 2 years ago

Thanks a lot for the quick reply, sounds great!

kunwuz commented 2 years ago

Hi @dg46, just a quick update :) We've re-implemented FCI. Now it includes the background_knowledge. Also, the speed of FCI has been improved a lot.

dg46 commented 2 years ago

Thank you for the update, I will give it a try!