cate_scoring default learner is oversized for its own per-fold, per-arm call pattern

Aperta
#1,037 1 commento 1 reazione 0 assegnatari Vedi su GitHub

@su-jin1425 ci sta già lavorando.

Dal 28/8/2026.

  • #1038 di @aman-coder03 — chiusa senza merge
  • #1042 di @su-jin1425 — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python

Direzione di ricerca

Inizia da cate_scoring.py alle righe 63, 275 e 399, quindi confronta l’uso del learner con gli helper TMLE in visualize.py alle righe 343, 453, 696 e 740. Leggi dr_score, plug_in_t_score e compute_dr_pseudo_outcomes, e usa tests/test_cate_scoring.py per misurare i casi senza learner. Il lavoro è completato quando è stato concordato un default più piccolo o dimensionato in base ai dati, oppure è presente un avviso chiaro nella docstring di dr_score, con i test pertinenti che continuano a passare e il costo dei fit ripetuti affrontato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

Low priority.

The default LGBMRegressor(num_leaves=64, ...) merged in #1030 (cate_scoring.py:63, :275, :399) is inherited from visualize.py's TMLE helpers (:343, :453, :696, :740), which fit on the full frame. dr_score / plug_in_t_score fit per-fold and per-arm — with the default n_folds=5 that is 10 fits on roughly n/10 rows each, where 64 leaves is well past what the slice supports. #1030 added verbose=-1, which silences the resulting "No further splits with positive gain" chatter without addressing the cause.

Two possible improvements, neither urgent:

  1. A smaller num_leaves for this call pattern, or one sized from the data.
  2. A docstring nudge on dr_score: comparing several candidate CATE models without an explicit learner refits 10 LGBM models per call, which is what compute_dr_pseudo_outcomes's own docstring advises avoiding by precomputing pseudo-outcomes once and passing pseudo_outcome_col.

Measured cost when #1030's three learner-less tests were added: tests/test_cate_scoring.py went from 17s to 37–55s.

Observed on master (477cd0a).

🤖 Generated with Claude Code

Lingua principale
Python
Stelle
6k
Fork
892
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di uber/causalml

Tutte le issue di uber/causalml

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.