No project description provided
Project description
causy
Causal discovery made easy.
Installation
Currently we only support python 3.11. To install causy run
pip install causy
Usage
Causy can be used via CLI or via code.
Usage via CLI
Run causy with one of the default algorithms
causy execute --help
causy execute your_data.json --algorithm PC --output-file output.json
The data you can use is a json file with a list of dictionaries. Each dictionary represents a data point. The keys of the dictionary are the variable names and the values are the values of the variables. The values can be either numeric or categorical.
[
{"a": 1, "b": 0.3},
{"a": 0.5, "b": 0.2}
]
You can customize your causy pipeline by ejecting and modifying the pipeline file.
causy eject PC pc.json
# edit pc.json
causy execute tests/fixtures/toy_data_larger.json --pipeline pc.json
This might be useful if you want to use a custom algorithm or if you want to customize the pipeline of a default algorithm.
Usage via Code
Use a default algorithm
from causy.algorithms import PC
from causy.utils import retrieve_edges
model = PC()
model.create_graph_from_data(
[
{"a": 1, "b": 0.3},
{"a": 0.5, "b": 0.2}
]
)
model.create_all_possible_edges()
model.execute_pipeline_steps()
edges = retrieve_edges(model.graph)
for edge in edges:
print(
f"{edge[0].name} -> {edge[1].name}: {model.graph.edges[edge[0]][edge[1]]}"
)
Use a custom algorithm
from causy.exit_conditions import ExitOnNoActions
from causy.graph import graph_model_factory, Loop
from causy.independence_tests import (
CalculateCorrelations,
CorrelationCoefficientTest,
PartialCorrelationTest,
ExtendedPartialCorrelationTestMatrix,
)
from causy.orientation_tests import (
ColliderTest,
NonColliderTest,
FurtherOrientTripleTest,
OrientQuadrupleTest,
FurtherOrientQuadrupleTest,
)
from causy.utils import retrieve_edges
CustomPC = graph_model_factory(
pipeline_steps=[
CalculateCorrelations(),
CorrelationCoefficientTest(threshold=0.1),
PartialCorrelationTest(threshold=0.01),
ExtendedPartialCorrelationTestMatrix(threshold=0.01),
ColliderTest(),
Loop(
pipeline_steps=[
NonColliderTest(),
FurtherOrientTripleTest(),
OrientQuadrupleTest(),
FurtherOrientQuadrupleTest(),
],
exit_condition=ExitOnNoActions(),
),
]
)
model = CustomPC()
model.create_graph_from_data(
[
{"a": 1, "b": 0.3},
{"a": 0.5, "b": 0.2}
]
)
model.create_all_possible_edges()
model.execute_pipeline_steps()
edges = retrieve_edges(model.graph)
for edge in edges:
print(
f"{edge[0].name} -> {edge[1].name}: {model.graph.edges[edge[0]][edge[1]]}"
)
Supported algorithms
Currently causy supports the following algorithms:
- PC (Peter-Clark)
- PC - the original PC algorithm without any modifications
causy.algorithms.PC
- ParallelPC - a parallelized version of the PC algorithm
causy.algorithms.ParallelPC
- PC - the original PC algorithm without any modifications
Supported pipeline steps
Detailed information about the pipeline steps can be found in the API Documentation.
Dev usage
Setup
We recommend using poetry to manage the dependencies. To install poetry follow the instructions on https://python-poetry.org/docs/#installation.
Install dependencies
poetry install
Execute tests
poetry run python -m unittest discover -s tests
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file causy-0.0.10.tar.gz
.
File metadata
- Download URL: causy-0.0.10.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4749e96cc84f0c756a2d7ea0229d8cfd91f70761805f6975e34696593e387ec4 |
|
MD5 | 06bd6d52b4919c363fa21c2c34506933 |
|
BLAKE2b-256 | 05e9ab53c1c885b83b94d7f009337d28e07b345c12b4e124d5dae23d2a012e86 |
File details
Details for the file causy-0.0.10-py3-none-any.whl
.
File metadata
- Download URL: causy-0.0.10-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b191ec741862b36dea39f74a9ae835dca484e60072473e73d50f9d9f9f5f84f |
|
MD5 | 939c393d585b4e6e87d6aa6f03a8b607 |
|
BLAKE2b-256 | f8497215dfc2b1740d74d24837721a2057cf3185b76b934b23a77b4c9a4c2a2f |