Make One Run Reproducible

Record every result-changing input

A reproducible run records code revision, data version, split seed or row IDs, feature list, preprocessing, algorithm settings called hyperparameters, library versions, metrics, and resulting artifact. Hyperparameters are chosen before training; parameters are learned during training.

import sklearn
record = {
  'random_state': 42,
  'sklearn_version': sklearn.__version__,
  'features': list(X.columns),
  'metric': 'recall',
}

Randomness appears in splits, subsampling, initialization, and some algorithms. A fixed random_state supports debugging and fair comparison, but trustworthy conclusions should not depend on one lucky seed. Repeat important comparisons across seeds or folds.

Note: Reproducibility means someone can recover the same evidence under the same conditions. It does not guarantee the result generalizes to a changed population.
Goal: The existing MLflow and DVC modules later turn this record-keeping discipline into versioned experiment and dataset evidence.