Skip to content

[Tree unification 9/9] Switchover + delete legacy uplift.pyx + deprecations #955

Description

@jeongyoonlee

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions