We need to expose the per-trial diagnostics a rank sweep needs
Problem
bicv returns Rank / Repeat / Metric / R2X. That is enough to plot, but not enough to audit a rank decision:
- Train-block R2X per trial is not returned. The single most useful sanity check on a BiCV curve is that in-sample R2X still climbs while held-out R2X turns over;
bicv computes a full-data Fit R2X separately (a different fit, on different data) rather than the training block's own.
- Block sizes are not returned.
n_test_genes / n_train_genes per trial are needed to interpret the spread across folds and to confirm splits are what was asked for.
- The split is not recoverable. Only a top-level
random_state is exposed, so a trial cannot be reproduced or re-scored in isolation.
Proposed change
Return the extra columns (TrainBlockR2X, NTestGenes, NTrainGenes), and expose the per-trial seed. All are already computed or trivially available; this is a return-shape change, not new machinery.
We need to expose the per-trial diagnostics a rank sweep needs
Problem
bicvreturnsRank / Repeat / Metric / R2X. That is enough to plot, but not enough to audit a rank decision:bicvcomputes a full-data Fit R2X separately (a different fit, on different data) rather than the training block's own.n_test_genes/n_train_genesper trial are needed to interpret the spread across folds and to confirm splits are what was asked for.random_stateis exposed, so a trial cannot be reproduced or re-scored in isolation.Proposed change
Return the extra columns (
TrainBlockR2X,NTestGenes,NTrainGenes), and expose the per-trial seed. All are already computed or trivially available; this is a return-shape change, not new machinery.