Skip to content

[Tree unification 4/9] Honesty (held-out leaf re-estimation) on the kernel Tree #950

Description

@jeongyoonlee

Reimplement the honesty option (held-out leaf re-estimation) on the kernel Tree.

Depends on Issue 1 (scaffold). Issue 3b's IDDP path depends on this landing.

Scope

  • Split the training data into a build split and an estimation split (estimation_sample_size, default 0.5).
  • After the tree is grown on the build split, do a post-build pass re-estimating each leaf's per-group P(Y=1) on the estimation split — replacing the legacy honestApproach / fillTree — using Tree.apply to route estimation rows to leaves and rewrite each node's value.
  • Respect honesty=False (default) as a no-op.

Verify

  • Honesty parity vs UpliftTreeClassifier(honesty=True, ...) on a fixed seed.
  • IDDP path (which forces honesty=True) works end-to-end.

Reusable templates

  • Legacy: uplift.pyx honestApproach / fillTree (~615–883).
  • Leaf routing: kernel Tree.apply.

Part of #945.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions