Skip to content

Conversation

@GaetandeCast
Copy link
Collaborator

@GaetandeCast GaetandeCast commented Jan 21, 2026

Closes #1989.

Investigating how to detect cross-validation splits with unexpectedly good or bad performance using the Modified Z-score with Median Absolute Deviation (MAD).

Example usage:

from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from skore import CrossValidationReport
X, y = load_breast_cancer(return_X_y=True)
classifier = LogisticRegression(max_iter=10_000)
report = CrossValidationReport(classifier, X=X, y=y, splitter=5)
report.check_split_consistency()

@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

Documentation preview @ dd45fdd

@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

Coverage

Coverage Report for skore/
FileStmtsMissCoverMissing
skore/src/skore
   __init__.py240100% 
   _config.py310100% 
   exceptions.py440%4, 15, 19, 23
skore/src/skore/_sklearn
   __init__.py60100% 
   _base.py1991492%46, 59, 128, 131, 184, 187–188, 190–193, 226, 229–230
   feature_names.py230100% 
   find_ml_task.py610100% 
   types.py28196%30
skore/src/skore/_sklearn/_comparison
   __init__.py70100% 
   feature_importance_accessor.py32196%131
   metrics_accessor.py191298%177, 257
   report.py1080100% 
   utils.py570100% 
skore/src/skore/_sklearn/_cross_validation
   __init__.py90100% 
   data_accessor.py45295%137, 140
   feature_importance_accessor.py210100% 
   metrics_accessor.py193199%250
   report.py171696%538, 545–547, 549, 618
skore/src/skore/_sklearn/_estimator
   __init__.py90100% 
   data_accessor.py66198%82
   feature_importance_accessor.py1300100% 
   metrics_accessor.py387498%425, 429, 444, 479
   report.py166298%449–450
skore/src/skore/_sklearn/_plot
   __init__.py30100% 
   base.py107694%63–64, 266–268, 272
   utils.py830100% 
skore/src/skore/_sklearn/_plot/data
   __init__.py20100% 
   table_report.py175199%657
skore/src/skore/_sklearn/_plot/feature_importance
   __init__.py00100% 
   coefficients.py1780100% 
skore/src/skore/_sklearn/_plot/metrics
   __init__.py60100% 
   confusion_matrix.py156199%543
   metrics_summary_display.py80100% 
   precision_recall_curve.py1750100% 
   prediction_error.py1520100% 
   roc_curve.py314997%263, 455, 578, 583, 684, 689, 693, 762, 902
skore/src/skore/_sklearn/train_test_split
   __init__.py00100% 
   train_test_split.py580100% 
skore/src/skore/_sklearn/train_test_split/warning
   __init__.py80100% 
   high_class_imbalance_too_few_examples_warning.py19194%83
   high_class_imbalance_warning.py200100% 
   random_state_unset_warning.py100100% 
   shuffle_true_warning.py90100% 
   stratify_is_set_warning.py100100% 
   time_based_column_warning.py210100% 
   train_test_split_warning.py30100% 
skore/src/skore/_utils
   __init__.py6266%8, 13
   _accessor.py90396%34, 146, 190
   _cache.py370100% 
   _environment.py270100% 
   _fixes.py80100% 
   _index.py50100% 
   _logger.py22481%15–17, 19
   _measure_time.py100100% 
   _parallel.py38392%23, 33, 124
   _patch.py211242%30, 35–39, 42–43, 46–47, 58, 60
   _progress_bar.py460100% 
   _repr_html.py80100% 
   _show_versions.py380100% 
   _testing.py560100% 
skore/src/skore/project
   __init__.py20100% 
   project.py570100% 
   summary.py75198%119
   widget.py1870100% 
TOTAL42188198% 

Tests Skipped Failures Errors Time
1366 5 💤 0 ❌ 0 🔥 8m 35s ⏱️

@GaetandeCast GaetandeCast changed the title feat(skore): Add a method to performance consistency across cv splits feat(skore): Add a method to check performance consistency across cv splits Jan 21, 2026
@glemaitre glemaitre self-requested a review January 21, 2026 16:09
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.

feat(skore): Detect high variance of metrics in cross valdiations

1 participant