This is release contains several major new features as well as a few important breaks in backwards compatibility.
* Introduces Cython implementations of GRF and CausalForestDML, greatly improving the performance of these estimators (341)
* Enables first stage nuisance estimates to be cached, allowing refitting only the final model for ortho learner subclasses (360)
* Enables averaging nuisance estimates over several random splits, resulting in lower variance estimates for ortho learner subclasses (360)
* Adds an `RScorer` class for performing model selection over different CATE estimators (361)
* Enables getting SHAP feature importances for CATE estimates (336, 369)
* More tightly integrates with the `dowhy` library. For instance, the causal graph used by an estimator can be viewed via `est.dowhy.view_model()` (400)
* Improves the display of summaries of inference objects (407)
* __Major Breaking Change__: restructured package organization, moving estimators to more consistent locations; for example, the `IntentToTreatDRIV` estimator is now found at `econml.iv.dr.IntentToTreatDRIV`. For the moment, we also support using the old package organization (e.g. `econml.ortho_iv.IntentToTreatDRIV`), but this is deprecated and will be removed in a subsequent release (370)
* __Breaking Change__: the `n_splits` initializer argument for ortho learner subclasses has been renamed to `cv` to better match sklearn. For the moment, it is still possible to use the name `n_splits`, but this will be removed in a future release (362)
* __Breaking Change__: the base version of the econml package no longer depends on tensorflow or keras (both of which are needed for using DeepIV), or matplotlib (which is needed for rendering tree interpreters). If you need to install these, the first two can be gotten via the econml[tf] extra and matplotlib can be gotten by the econml[plt] extra, or all three libraries can be installed at once via the econml[all] extra (413).
* Many small fixes and improvements (337, 358, 373, 363, 365, 328, 398)