Skip to content

Releases: uber/causalml

v0.17.0

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 04 Jul 06:50
dff8ec3

This release adds scikit-learn 1.9 support (fixing an import causalml.dataset failure present on the 0.16.0 wheel, #926), native Polars support across all meta-learners, a JAX/flax.nnx backend for DragonNet, and makes the meta-learners scikit-learn compliant (BaseEstimator, so clone() and get_params() work). It also adds the RATE evaluation metric and post-fit confidence intervals for BaseTLearner, plus numerous bug fixes.

New Features

  • Add native Polars DataFrame, Series, and LazyFrame support for all meta-learners by @aman-coder03 in #901
  • Polish Polars support and add bootstrap CI test coverage by @aman-coder03 in #921
  • Add JAX/flax.nnx backend for DragonNet by @xrhd in #918
  • docs: document JAX backend for DragonNet by @xrhd in #919
  • Make meta-learners scikit-learn compliant via BaseEstimator by @aman-coder03 in #912
  • Add Rank-weighted Average Treatment Effect (RATE) metric by @aman-coder03 in #887
  • Add rate_score() with bootstrap confidence intervals and p-values by @aman-coder03 in #890
  • Add AIPW docstring warning to get_toc() and rate_score() by @jeongyoonlee in #891
  • Add post-fit confidence intervals to BaseTLearner via store_bootstraps and return_ci by @aman-coder03 in #886
  • Support NaN values in UpliftTree and UpliftRandomForest by @aman-coder03 in #860

scikit-learn 1.9 Support

  • Fix for compatibility with sklearn v1.9.0 by @jakevdp in #903
  • Fix CausalRandomForestRegressor.fit() on scikit-learn 1.9 by @jeongyoonlee in #907
  • Support CausalRandomForestRegressor.calculate_error() on scikit-learn >= 1.9 by @jeongyoonlee in #909

Bug Fixes

  • Fix #904: Prevent deepcopy of fitted templates in bootstrap and correct predict validation ordering by @Saurav-Gupta-9741 in #910
  • Optimised training, inference and memory for metalearners in multitreatment settings by @Ic3fr0g in #896
  • Fix UpliftRandomForest predict shape mismatch with multiple treatments by @jeongyoonlee in #884
  • Fix uplift tree p-value NaN from division by zero by @jeongyoonlee in #882
  • Fix CausalRandomForestRegressor predicting inf from division by zero by @jeongyoonlee in #883
  • Fix SensitivityPlaceboTreatment ignoring actual treatment groups by @jeongyoonlee in #880
  • Fix seed parameter TypeError in BaseDRLearner bootstrap CI by @mohsinm-dev in #879
  • Fix ValueError on read-only arrays in BaseSLearner.predict() by @mohsinm-dev in #878
  • Add input validation to auuc_score for missing model columns by @jeongyoonlee in #881
  • Make xgboost optional in synthetic dataset generation by @Si-ra-kri in #872
  • Bug Fix: use iloc to index pd.Series by @bekojuniranjan in #877

Build / CI

  • Make Cython line tracing opt-in to keep release wheels fast by @HSJung93 in #914
  • Remove the PyPI token from GitHub Actions in favor of the Trusted Publishing by @jeongyoonlee in #871
  • Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in #874
  • Upgrade GitHub Actions to latest versions by @salmanmkc in #875
  • ci: declare workflow-level contents: read on 4 workflows by @arpitjain099 in #900

⚠️ Breaking Changes

  • Meta-learner __init__ signatures (#912): to become scikit-learn BaseEstimators, each learner now stores its constructor arguments verbatim and builds models in fit(). Most visibly, XGBRRegressor no longer accepts arbitrary **kwargs — pass XGBoost parameters via the explicit xgb_kwargs=<dict> argument.

Full Changelog: v0.16.0...v0.17.0

v0.16.0

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 06 Feb 17:45
db11de2

This release primarily focuses on adding support for scipy>=1.16.0, numpy>=1.25.2, statsmodels>=0.14.5, and Python>=3.11, addressing Cython binary interface compatibility issues with updated dependencies.

What's Changed

  • Add BaseDRClassifier for binary classification with probabilities by @jeongyoonlee in #844
  • add ability to benchmark via synth validation by @IyarLin in #847
  • Bug Fix: Update uplift.pyx with isinstance(v, Numbers.number)) by @00helloworld in #849
  • Fix #848: Pass estimation_sample_size parameter to individual trees in UpliftRandomForestClassifier by @mohsinm-dev in #850
  • #775: Support multiple treatments in CausalTreeRegressor and CausalRandomForestRegressor by @alexander-pv in #852
  • fix: support scipy>=1.16.0 by removing sklearn internal dependency by @jeongyoonlee in #861
  • Fix Ubuntu packaging failure - scipy manylinux compatibility by @jeongyoonlee in #865
  • Upgrade cibuildwheel to v3.3.1 and remove deprecated macos-13 runner by @jeongyoonlee in #867
  • Release v0.16.0: Upgrade to manylinux_2_28 and remove scipy version constraints by @jeongyoonlee in #869

New Contributors

Full Changelog: v0.15.5...v0.16.0

v0.15.5

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 09 Jul 00:10
5f5c4fb

What's Changed

New Contributors

Full Changelog: v0.15.4...v0.15.5

v0.15.4

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 15 May 16:49
5d19684

What's Changed

New Contributors

Full Changelog: v0.15.3...v0.15.4

v0.15.3

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 20 Feb 18:36
86e5c89
  • This release allows users to use the latest versions of Cython, numpy, scipy, and scikit-learn by updating dependencies.
  • Pre-built wheels for Python 3.12, in addition to Python 3.9-3.11, are now available on PyPI for easy installation.

What's Changed

Full Changelog: v0.15.2...v0.15.3

v0.15.2

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 01 Oct 06:14
c4d7c60

What's Changed

New Contributors

Full Changelog: v0.15.1...v0.15.2

v0.15.1

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 19 Apr 00:05
29a2d75
  • This release fixes the build failure on macOS and a few bugs in UpliftTreeClassifier.
  • We have two new contributors, @lee-junseok and @IanDelbridge. Thanks for your contributions!

What's Changed

New Contributors

Full Changelog: v0.15.0...v0.15.1

v0.15.0

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 22 Feb 19:20
7ccbaf7
  • In this release, we revamped documentation, cleaned up dependencies, and improved installation - in addition to the long list of bug fixes.
  • We have four new contributors, @peterloleungyau, @SuperBo, @ZiJiaW, and @erikcs who submitted their first PRs to CausalML. Thanks for your contributions!

Updates

New Contributors

Full Changelog: v0.14.1...v0.15.0

v0.14.1

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 28 Aug 00:37
b7dbce5

What's Changed

New Contributors

Full Changelog: v0.14.0...v0.14.1

v0.14.0

Choose a tag to compare

@jeongyoonlee jeongyoonlee released this 08 Jul 20:19
a2c8baf

What's Changed

New Contributors

Full Changelog: v0.13.0...v0.14.0