=================================================================
Loading data...
  Train: 630,000  Test: 270,000  Real: 270
  X_tr: 504,000  X_val: 126,000
  Load time: 1.0s

=================================================================
EXP A: Multi-seed ensemble + healed best seed
=================================================================
  [Xtr] seed=  0  val_AUC=0.95563  fit=1647.4s
  [Xtr] seed=  1  val_AUC=0.95562  fit=1344.5s
  [Xtr] seed=  2  val_AUC=0.95561  fit=1321.6  s  [Xtr] seed=  3  val_AUC=0.95560  fit=Traceback  [Xtr] seed= 42  val_AUC=0.95560  fit=1313.2s
  [Xtr] seed= 99  val_AUC=0.95561  fit=1224.3s

  Best seed on val: seed=0  AUC=0.95563
  Healing best seed (buffer=2000 samples)...
[Gardener] Baseline val AUC: 0.9651
  Strategy=auto  max_iterations=3

  --- Iteration 1 ---
  Biased leaves: 6067  |bias| range [0.0300, 0.5243]
  Surgery: no improvement found.
  Correction ensemble: no improvement found.
  No improvement this iteration. Stopping.

[Gardener] Healing complete.
  Baseline : 0.9651
  Final    : 0.9651
  Gain     : +0.0000
  Edits    : 0
Traceback (most recent call last):
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\data\overnight_pipeline.py", line 151, in <module>
    ens_approx_auc = roc_auc_score(y_eval_buf, np.mean(seed_test_probas_tr, axis=0))
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\utils\_param_validation.py", line 218, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\metrics\_ranking.py", line 704, in roc_auc_score
    return _average_binary_score(
        partial(_binary_roc_auc_score, max_fpr=max_fpr),
    ...<3 lines>...
        sample_weight=sample_weight,
    )
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\metrics\_base.py", line 69, in _average_binary_score
    return binary_metric(y_true, y_score, sample_weight=sample_weight)
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\metrics\_ranking.py", line 451, in _binary_roc_auc_score
    fpr, tpr, _ = roc_curve(y_true, y_score, sample_weight=sample_weight)
                  ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\utils\_param_validation.py", line 191, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\metrics\_ranking.py", line 1258, in roc_curve
    _, fps, _, tps, thresholds = confusion_matrix_at_thresholds(
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        y_true, y_score, pos_label=pos_label, sample_weight=sample_weight
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\utils\_param_validation.py", line 191, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\metrics\_ranking.py", line 930, in confusion_matrix_at_thresholds
    check_consistent_length(y_true, y_score, sample_weight)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jakep\ProofOfConcept\GeoXGB\.venv\Lib\site-packages\sklearn\utils\validation.py", line 464, in check_consistent_length
    raise ValueError(
    ...<2 lines>...
    )
ValueError: Found input variables with inconsistent numbers of samples: [124000, 270000]
