{"id":13473199,"url":"https://github.com/uber/causalml","last_synced_at":"2026-02-05T00:06:34.328Z","repository":{"id":37432583,"uuid":"195914972","full_name":"uber/causalml","owner":"uber","description":"Uplift modeling and causal inference with machine learning algorithms","archived":false,"fork":false,"pushed_at":"2026-01-31T04:06:44.000Z","size":144570,"stargazers_count":5710,"open_issues_count":49,"forks_count":842,"subscribers_count":84,"default_branch":"master","last_synced_at":"2026-01-31T16:52:24.788Z","etag":null,"topics":["causal-inference","incubation","machine-learning","uplift-modeling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-07-09T02:08:58.000Z","updated_at":"2026-01-30T14:41:46.000Z","dependencies_parsed_at":"2024-01-29T16:59:47.670Z","dependency_job_id":"ccc3b704-a5b5-4b7c-a251-a85ca5cdf168","html_url":"https://github.com/uber/causalml","commit_stats":{"total_commits":377,"total_committers":57,"mean_commits":6.614035087719298,"dds":0.8116710875331565,"last_synced_commit":"3931ccf69dedb7f97c5be3c1b2d3e2fd7bc8b305"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/uber/causalml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fcausalml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fcausalml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fcausalml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fcausalml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uber","download_url":"https://codeload.github.com/uber/causalml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uber%2Fcausalml/sbom","scorecard":{"id":906225,"data":{"date":"2025-08-11","repo":{"name":"github.com/uber/causalml","commit":"1a96e01f67496c3846d0e8146e5dd90ae9eb21a6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.5,"checks":[{"name":"Code-Review","score":9,"reason":"Found 27/29 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":7,"reason":"7 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/black.yml:1","Warn: no topLevel permission defined: .github/workflows/python-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/python-test.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-build-from-source.yml:1","Warn: no topLevel permission defined: .github/workflows/test-pypi-install.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":5,"reason":"badge detected: Passing","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-publish.yml:58"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/black.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/black.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/black.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/black.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-publish.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-publish.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-test.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-test.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-test.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/python-test.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-build-from-source.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/test-build-from-source.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-build-from-source.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/test-build-from-source.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-build-from-source.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/test-build-from-source.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-pypi-install.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/test-pypi-install.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-pypi-install.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/test-pypi-install.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-pypi-install.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/uber/causalml/test-pypi-install.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/python-test.yaml:28","Warn: pipCommand not pinned by hash: .github/workflows/python-test.yaml:29","Warn: pipCommand not pinned by hash: .github/workflows/python-test.yaml:30","Warn: pipCommand not pinned by hash: .github/workflows/test-pypi-install.yml:43","Info:   0 out of  12 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   5 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"10 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-107 / GHSA-jjw5-xxj6-pcv5","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: PYSEC-2020-108"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T17:26:30.698Z","repository_id":37432583,"created_at":"2025-08-24T17:26:30.698Z","updated_at":"2025-08-24T17:26:30.698Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29101869,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T22:44:52.815Z","status":"ssl_error","status_checked_at":"2026-02-04T22:44:16.428Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["causal-inference","incubation","machine-learning","uplift-modeling"],"created_at":"2024-07-31T16:01:01.638Z","updated_at":"2026-02-05T00:06:34.322Z","avatar_url":"https://github.com/uber.png","language":"Python","funding_links":[],"categories":["Python","The Data Science Toolbox","Table of Contents","Machine Learning","Causal Inference","Tools","Others","其他_机器视觉","🚀 GitHub Repositories","Causal Inference and Econometrics","Technical Resources","Uncategorized","Other Awesome lists","📚 Project Purpose"],"sub_categories":["General Machine Learning Packages","Tools","General Purpose Machine Learning","Others","网络服务_其他","🌟 **Real-World Magic**","Automatic Plotting","Core Libraries","Open Source/Access Responsible AI Software Packages","Uncategorized","Causal Inference","Machine Learning (Intermediate-Level"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/uber/causalml\"\u003e\u003cimg width=\"380px\" height=\"140px\" src=\"https://raw.githubusercontent.com/uber/causalml/master/docs/_static/img/logo/causalml_logo.png\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n------------------------------------------------------\n\n[![PyPI Version](https://badge.fury.io/py/causalml.svg)](https://pypi.org/project/causalml/)\n[![Build Status](https://github.com/uber/causalml/actions/workflows/python-test.yaml/badge.svg)](https://github.com/uber/causalml/actions/workflows/python-test.yaml)\n[![Documentation Status](https://readthedocs.org/projects/causalml/badge/?version=latest)](http://causalml.readthedocs.io/en/latest/?badge=latest)\n[![Downloads](https://static.pepy.tech/badge/causalml)](https://pepy.tech/project/causalml)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3015/badge)](https://bestpractices.coreinfrastructure.org/projects/3015)\n\n\n# Disclaimer\nThis project is stable and being incubated for long-term support. It may contain new experimental code, for which APIs are subject to change.\n\n\n# Causal ML: A Python Package for Uplift Modeling and Causal Inference with ML\n\n**Causal ML** is a Python package that provides a suite of uplift modeling and causal inference methods using machine learning algorithms based on recent\nresearch [[1]](#Literature). It provides a standard interface that allows user to estimate the Conditional Average Treatment Effect (CATE) from experimental or observational data. Essentially, it estimates the causal impact of intervention `T` on outcome `Y` for users\n with observed features `X`, without strong assumptions on the model form. Typical use cases include\n\n* **Campaign targeting optimization**: An important lever to increase ROI in an advertising campaign is to target the ad to the set of customers who will have a favorable response in a given KPI such as engagement or sales. CATE identifies these customers by estimating the effect of the KPI from ad exposure at the individual level from A/B experiment or historical observational data.\n\n* **Personalized engagement**: A company has multiple options to interact with its customers such as different product choices in up-sell or messaging channels for communications. One can use CATE to estimate the heterogeneous treatment effect for each customer and treatment option combination for an optimal personalized recommendation system.\n\n\n# Documentation\n\nDocumentation is available at:\n\nhttps://causalml.readthedocs.io/en/latest/about.html\n\n\n# Installation\n\nInstallation instructions are available at:\n\nhttps://causalml.readthedocs.io/en/latest/installation.html\n\n\n# Quickstart\n\nQuickstarts with code-snippets are available at:\n\nhttps://causalml.readthedocs.io/en/latest/quickstart.html\n\n\n# Example Notebooks\n\nExample notebooks are available at:\n\nhttps://causalml.readthedocs.io/en/latest/examples.html\n\n\n# Contributing\n\nWe welcome community contributors to the project. Before you start, please read our [code of conduct](https://github.com/uber/causalml/blob/master/CODE_OF_CONDUCT.md) and check out [contributing guidelines](./CONTRIBUTING.md) first.\n\n\n# Versioning\n\nWe document versions and changes in our [changelog](https://github.com/uber/causalml/blob/master/docs/changelog.rst).\n\n\n# License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE](https://github.com/uber/causalml/blob/master/LICENSE) file for details.\n\n\n# References\n\n## Documentation\n* [Causal ML API documentation](https://causalml.readthedocs.io/en/latest/about.html)\n\n## Workshops, Talks, and Publications\n* (Workshop) [3rd Workshop on Causal Inference and Machine Learning in Practice](https://causal-machine-learning.github.io/kdd2025-workshop/) at KDD 2025\n* (Workshop) [2nd Workshop on Causal Inference and Machine Learning in Practice](https://causal-machine-learning.github.io/kdd2024-workshop/) at KDD 2024\n* (Workshop) [Causal Inference and Machine Learning in Practice: Use cases for Product, Brand, Policy and Beyond](https://causal-machine-learning.github.io/kdd2023-workshop/) at KDD 2023\n* (Talk) Introduction to CausalML at [Causal Data Science Meeting 2021](https://www.causalscience.org/meeting/program/day-2/)\n* (Talk) Introduction to CausalML at [2021 Conference on Digital Experimentation @ MIT (CODE@MIT)](https://ide.mit.edu/events/2021-conference-on-digital-experimentation-mit-codemit/)\n* (Tutorial) [Causal Inference and Machine Learning in Practice with EconML and CausalML: Industrial Use Cases at Microsoft, TripAdvisor, Uber](https://causal-machine-learning.github.io/kdd2021-tutorial/) at KDD 2021\n* (Publication) [CausalML: Python package for causal machine learning](https://arxiv.org/abs/2002.11631)\n* (Publication) [Uplift Modeling for Multiple Treatments with Cost Optimization](https://ieeexplore.ieee.org/document/8964199) at [2019 IEEE International Conference on Data Science and Advanced Analytics (DSAA)](http://203.170.84.89/~idawis33/dsaa2019/preliminary-program/)\n* (Publication) [Feature Selection Methods for Uplift Modeling](https://arxiv.org/abs/2005.03447)\n\n## Citation\nTo cite CausalML in publications, you can refer to the following sources:\n\nWhitepaper:\n[CausalML: Python Package for Causal Machine Learning](https://arxiv.org/abs/2002.11631)\n\nBibtex:\n\u003e @misc{chen2020causalml,\n\u003e    title={CausalML: Python Package for Causal Machine Learning},\n\u003e    author={Huigang Chen and Totte Harinen and Jeong-Yoon Lee and Mike Yung and Zhenyu Zhao},\n\u003e    year={2020},\n\u003e    eprint={2002.11631},\n\u003e    archivePrefix={arXiv},\n\u003e    primaryClass={cs.CY}\n\u003e}\n\n\n## Literature\n\n1. Chen, Huigang, Totte Harinen, Jeong-Yoon Lee, Mike Yung, and Zhenyu Zhao. \"Causalml: Python package for causal machine learning.\" arXiv preprint arXiv:2002.11631 (2020).\n2. Radcliffe, Nicholas J., and Patrick D. Surry. \"Real-world uplift modelling with significance-based uplift trees.\" White Paper TR-2011-1, Stochastic Solutions (2011): 1-33.\n3. Zhao, Yan, Xiao Fang, and David Simchi-Levi. \"Uplift modeling with multiple treatments and general response types.\" Proceedings of the 2017 SIAM International Conference on Data Mining. Society for Industrial and Applied Mathematics, 2017.\n4. Hansotia, Behram, and Brad Rukstales. \"Incremental value modeling.\" Journal of Interactive Marketing 16.3 (2002): 35-46.\n5. Jannik Rößler, Richard Guse, and Detlef Schoder. \"The Best of Two Worlds: Using Recent Advances from Uplift Modeling and Heterogeneous Treatment Effects to Optimize Targeting Policies\". International Conference on Information Systems (2022)\n6. Su, Xiaogang, et al. \"Subgroup analysis via recursive partitioning.\" Journal of Machine Learning Research 10.2 (2009).\n7. Su, Xiaogang, et al. \"Facilitating score and causal inference trees for large observational studies.\" Journal of Machine Learning Research 13 (2012): 2955.\n8. Athey, Susan, and Guido Imbens. \"Recursive partitioning for heterogeneous causal effects.\" Proceedings of the National Academy of Sciences 113.27 (2016): 7353-7360.\n9. Künzel, Sören R., et al. \"Metalearners for estimating heterogeneous treatment effects using machine learning.\" Proceedings of the national academy of sciences 116.10 (2019): 4156-4165.\n10. Nie, Xinkun, and Stefan Wager. \"Quasi-oracle estimation of heterogeneous treatment effects.\" arXiv preprint arXiv:1712.04912 (2017).\n11. Bang, Heejung, and James M. Robins. \"Doubly robust estimation in missing data and causal inference models.\" Biometrics 61.4 (2005): 962-973.\n12. Van Der Laan, Mark J., and Daniel Rubin. \"Targeted maximum likelihood learning.\" The international journal of biostatistics 2.1 (2006).\n13. Kennedy, Edward H. \"Optimal doubly robust estimation of heterogeneous causal effects.\" arXiv preprint arXiv:2004.14497 (2020).\n14. Louizos, Christos, et al. \"Causal effect inference with deep latent-variable models.\" arXiv preprint arXiv:1705.08821 (2017).\n15. Shi, Claudia, David M. Blei, and Victor Veitch. \"Adapting neural networks for the estimation of treatment effects.\" 33rd Conference on Neural Information Processing Systems (NeurIPS 2019), 2019.\n16. Zhao, Zhenyu, Yumin Zhang, Totte Harinen, and Mike Yung. \"Feature Selection Methods for Uplift Modeling.\" arXiv preprint arXiv:2005.03447 (2020).\n17. Zhao, Zhenyu, and Totte Harinen. \"Uplift modeling for multiple treatments with cost optimization.\" In 2019 IEEE International Conference on Data Science and Advanced Analytics (DSAA), pp. 422-431. IEEE, 2019.\n\n\n## Related projects\n\n* [uplift](https://cran.r-project.org/web/packages/uplift/index.html): uplift models in R\n* [grf](https://cran.r-project.org/web/packages/grf/index.html): generalized random forests that include heterogeneous treatment effect estimation in R\n* [rlearner](https://github.com/xnie/rlearner): A R package that implements R-Learner\n* [DoWhy](https://github.com/Microsoft/dowhy):  Causal inference in Python based on Judea Pearl's do-calculus\n* [EconML](https://github.com/microsoft/EconML): A Python package that implements heterogeneous treatment effect estimators from econometrics and machine learning methods\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuber%2Fcausalml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuber%2Fcausalml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuber%2Fcausalml/lists"}