pub struct VariantSelection {
pub selected_variant_id: VariantId,
pub validation_reports: Vec<RegressionMetricReport>,
pub variant_validation_predictions: Vec<VariantValidationPredictions>,
}Expand description
Outcome of native variant selection: the winning variant plus EVERY scored variant’s
cross-validation reports, each tagged with its own variant_id.
The reports are the per-fold + cross-fold-OOF-average VALIDATION (OOF) reports collected while
ranking. They are emitted so a generated sweep can surface every variant’s CV score — not only
the winner’s — to match the legacy per-variant num_predictions. These are REPORT-ONLY
validation scores of non-selected models: they never feed any downstream training/feature path
(no prediction blocks, no RegressionTargetRecords, no handles leave selection — see
select_best_variant_by_cv), so the OOF/leakage invariants are unaffected.
Fields§
§selected_variant_id: VariantIdThe winning variant, ranked by selection_metric. The SELECT DECISION is identical to the
pre-existing behavior; validation_reports is purely additive context.
validation_reports: Vec<RegressionMetricReport>Per-variant VALIDATION (OOF) reports for ALL ranked variants (winner included), each tagged
with its variant_id. The cross-fold OOF average per producer is re-tagged with the variant
id (its native form has variant_id = None); the per-fold reports already carry it.
variant_validation_predictions: Vec<VariantValidationPredictions>Per-variant VALIDATION (OOF) PREDICTIONS for ALL ranked variants (winner included), captured
from each variant’s transient FIT_CV RunContext BEFORE it is dropped, re-tagged with the
variant’s id + content fingerprint. The scalar validation_reports
above carry only the score; these carry the per-sample y_pred (+ id-matched y_true) so a host
can fill a non-selected variant’s per-fold prediction rows, not just its CV score.
LEAKAGE: these are each variant’s OWN validation (OOF) predictions, re-tagged with that
variant’s id (which prevents cross-variant mixing). They are surfaced for host
persistence/display only — every transient CV run executes FIT_CV ONLY (no Final/Test/refit),
so by construction this carries no train/refit predictions, and the captured blocks never feed
a training/feature path or cross a requires_oof edge. This is strictly ADDITIVE — the same
values the scalar reports were computed from, exposed per sample — analogous to the additive
OOF-average block surfacing; no leakage validator is relaxed.
Trait Implementations§
Source§impl Clone for VariantSelection
impl Clone for VariantSelection
Source§fn clone(&self) -> VariantSelection
fn clone(&self) -> VariantSelection
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more