First stable CRAN release. The Hastie workflow in R.
ml_split(), ml_fit(), ml_evaluate(), ml_assess().
The evaluate/assess boundary prevents data leakage by separating iterative
model selection from final generalization estimates.ml_screen() for rapid algorithm comparison across all available backends.ml_tune() for hyperparameter tuning with random search and
cross-validation.ml_stack() for model ensembling via out-of-fold stacking.ml_drift() for data drift detection (KS test).ml_shelf() for model staleness monitoring.ml_explain() for feature importance (impurity-based and coefficient-based).ml_calibrate() for probability calibration (Platt scaling).ml_validate() for pass/fail gating against user-defined rules.ml_profile() for dataset profiling.ml_save() / ml_load() for model persistence in .mlr format.configure; no Rust required for a fully functional installation.ml_assess() terminal constraint now enforced per-partition via content-addressed
fingerprinting. Serialization and deepcopy bypasses are closed.ml_cv(), ml_cv_temporal(), ml_cv_group() for cross-validation.ml_verify() for post-fit model verification.ml_prepare() for explicit preprocessing.rlang::hash fingerprinting).ml_assess() now rejects a second call on
the same test partition regardless of which model calls it.ml_prepare() return value extraction (X and norm fields).ml_cv(), ml_cv_temporal(), ml_cv_group() for cross-validation.ml_verify() for post-fit model verification.ml_prepare() for explicit preprocessing.rlang::hash fingerprinting).ml_assess() now rejects a second call on
the same test partition regardless of which model calls it. The provenance
registry tracks spent holdouts via content-addressed fingerprinting.ml_prepare() return value extraction (X and norm fields).