Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md with philosophy #75

Merged
merged 4 commits into from
Jan 4, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 34 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,40 @@

# dodiscover

DoDiscover is a Python library for causal discovery (causal structure learning). If one does not have access to a hypothesized causal graph for their situation, then they may use dodiscover to learn causal structure from their data (e.g. in the form of a graph).
DoDiscover is a Python library for causal discovery (causal structure learning). If one does not have access to a causal graph for their modeling problem, they may use DoDiscover to learn causal structure from their data (e.g., in the form of a graph).
adam2392 marked this conversation as resolved.
Show resolved Hide resolved

# What makes dodiscovery different from other causal discovery libraries?

Why do we need another causal discovery library?
Here are some design goals that differentiate DoDiscover from other causal discovery libraries.

## Ease of use

An analyst should be able to get a causal discovery workflow working quickly without intimate knowledge of causal discovery algorithms.
DoDiscover prioritizes the workflow over the algorithms and provides default arguments to algorithm parameters.

## Democratizing deep causal discovery

Many cutting-edge causal discovery algorithms rely on deep learning frameworks.
However, deep learning-based causal discovery often requires obscure boilerplate code, complex configuration, and management of large artifacts such as embeddings.
DoDiscover seeks to create abstractions that address these challenges and make deep causal discovery more broadly accessible. Current algorithms are a work-in-progress. We will begin by providing a robust API for the fundamental discovery algorithms.

## Easy interface for articulating causal assumptions

Domain experts bring a large amount of domain knowledge to a problem.
That domain knowledge can establish causal assumptions that can constrain causal discovery.
Causal discovery (indeed, all causal inferences) requires causal assumptions.

However, a newly developed causal discovery algorithm has a greater research impact when it can do more with fewer assumptions.
This "do more with less" orientation tends to deemphasize assumptions in the user interfaces of many causal discovery libraries.

DoDiscover prioritizes the interface for causal assumptions.
Further, DoDiscover seeks to help the user feel confident with their assumptions by emphasizing testing assumptions, making inferences under uncertainty, and robustness to model misspecification.

## Unite causal discovery and causal representation learning

Causal representation learning is the task of learning high-level latent variables and the causal structure between them from low-level variables observed in data.
DoDiscover seeks to support causal representation learning algorithms in the context of traditional causal discovery settings.

# Documentation

Expand Down