Flip the public API to the kernel-backed implementation, delete the legacy uplift.pyx duplicate, and add deprecations. The final issue of the epic.
Depends on all prior issues (1–8) — full criterion coverage, regularization, normalization, honesty, pruning, forest, plot, serialization all at parity.
Scope
- Flip public
UpliftTreeClassifier / UpliftRandomForestClassifier to thin subclasses of the kernel-backed impls (names / args / defaults preserved).
- Delete the ~2.3 KLoC duplicated node / builder / splitter / bagging / scalar-criteria from
uplift.pyx.
- Optionally rename
_uplift/ → uplift/ (package) now that uplift.pyx is gone.
- Deprecation-warn on the public
DecisionTree class (open Q2) and on any inevitable arg/behavior drift.
Verify
- Full
tests/test_uplift_trees.py green against the new impl.
tests/test_serialization_extended.py green.
check_estimator for both uplift classes.
uv run black ..
Reusable templates
- The kernel-backed impls from Issues 1–8; the causal classes as the structural precedent.
Part of #945.
Flip the public API to the kernel-backed implementation, delete the legacy
uplift.pyxduplicate, and add deprecations. The final issue of the epic.Depends on all prior issues (1–8) — full criterion coverage, regularization, normalization, honesty, pruning, forest, plot, serialization all at parity.
Scope
UpliftTreeClassifier/UpliftRandomForestClassifierto thin subclasses of the kernel-backed impls (names / args / defaults preserved).uplift.pyx._uplift/→uplift/(package) now thatuplift.pyxis gone.DecisionTreeclass (open Q2) and on any inevitable arg/behavior drift.Verify
tests/test_uplift_trees.pygreen against the new impl.tests/test_serialization_extended.pygreen.check_estimatorfor both uplift classes.uv run black ..Reusable templates
Part of #945.