Skip to content

feat: probability calibration + richer classification metrics#13

Merged
ancongui merged 1 commit into
mainfrom
feat/metrics-and-calibration
Jun 25, 2026
Merged

feat: probability calibration + richer classification metrics#13
ancongui merged 1 commit into
mainfrom
feat/metrics-and-calibration

Conversation

@ancongui

Copy link
Copy Markdown
Contributor

Modeling-depth batch 1 (TDD, real data).

Probability calibration

  • New CalibratorPort + SklearnCalibrator (cross-validated CalibratedClassifierCV, isotonic).
  • Opt-in AutoML(calibrate=True) wraps the winning classifier after model selection so served probabilities are trustworthy (lending/medical risk decisions). Off by default — classical-first behaviour is unchanged; DI-resolvable via from_context.

Richer metrics

  • The evaluator now reports average_precision (PR-AUC — key on imbalanced data) and brier_score (probability quality / calibration) for binary tasks, alongside roc_auc/accuracy. Additive: no change to defaults or CV scoring.

Tests (real breast_cancer, no fakes)

  • calibrate=True → winner is a CalibratedClassifierCV with valid probabilities + low holdout Brier; calibrate=False unchanged.
  • Evaluator reports PR-AUC + Brier in [0,1] with sane values.

Local gates green: ruff/format/pyright(0)/12 tests + strict docs. Rebased on post-#12 main (disjoint files).

Modeling-depth batch:
- CalibratorPort + SklearnCalibrator (cross-validated CalibratedClassifierCV); opt-in
  AutoML(calibrate=True) wraps the winning classifier after selection so served
  probabilities are trustworthy. Off by default (classical-first unchanged); DI-resolvable.
- Evaluator now reports average_precision (PR-AUC, key on imbalanced data) and brier_score
  (probability quality) for binary tasks, alongside roc_auc/accuracy. Additive — no change
  to defaults or CV scoring.
TDD on real breast_cancer data; docs note in automl.md.
@ancongui ancongui merged commit 3cc58a5 into main Jun 25, 2026
4 checks passed
@ancongui ancongui deleted the feat/metrics-and-calibration branch June 25, 2026 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant