Code Monkey home page Code Monkey logo

Comments (2)

benhorsburgh avatar benhorsburgh commented on June 4, 2024 1

It is our intention to use GitHub Issues to track development related issues for causalnex. As such, I will close this Issue. However, please do get in contact if you would like to discuss this in more detail.

Ben

from causalnex.

benhorsburgh avatar benhorsburgh commented on June 4, 2024

Hi @zemlyansky thank you for your question.

In short: causalnex does not find causal relationships. causalnex allows data scientists to collaborate with domain experts, to define a causal structure, and then draw causal insights from it.


You are correct that Bayesian Networks can equivalently encode dependencies as you describe. However, one of these equivalencies may be causal, and others will not. For example, if we replace a, b, c with age, height, and reach, then we can say that:

  • age -> height -> reach
    • the state of a persons age has a causal influence on the state of their height, which in turn has a causal influence on the state of their reach.

However, we cannot equivalently say:

  • reach -> height -> age
    • the state of a persons reach has a causal influence on the state of their height, which in turn has a causal influence on the state of their age.

So, to your question "What helps causalnex find causal relationships and does it really do that?". No, Causalnex does not find causal relationships. However, causalnex does "help data scientists to infer causation", "in the case where BNs are causal".

How does it do this? By encouraging the workflow of StructureModel -> BayesianNetwork -> InferenceEngine.

  1. Use Machine-Learning to create a seed StructureModel, which is not causal.
  2. Review the StructureModel with domain experts, who can amend the structure to reflect known causal relationships (cross referencing literature, expertise, etc).
  3. Iterate until a known causal structure is defined.
  4. Create a BayesianNetwork from the causal StructureModel, and use the InferenceEngine to create insights.

The important step here is the collaboration between data scientists and domain experts. Ideally, a domain expert could look at our variables, and tell us the structure. In practice this is too time consuming for such a valuable resource, and so structure learning algorithms can help make this iterative process significantly faster.

from causalnex.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.