R's original ML glue is now a museum piece
mlr unified R's fragmented machine-learning ecosystem before retiring itself to make way for mlr3.

What it does
mlr wraps R’s scattered machine-learning packages behind a single S3 interface. It handles the tedious plumbing—resampling, hyperparameter tuning, feature selection, benchmarking, and parallelization—so you don’t write yet another ad-hoc wrapper for a random forest package that returns output in a different shape than your SVM package.
The interesting bit
The project essentially built a domain-specific operating system for ML experiments in a language that lacked one. It even integrated with OpenML for reproducible research at a time when that was genuinely unusual. Then it did something rare: it declared itself retired and pointed everyone to its successor, mlr3, rather than dragging out obsolescence.
Key highlights
- Unified interface for classification, regression, survival analysis, and clustering
- Built-in resampling (CV, bootstrapping, subsampling) and nested resampling for tuning
- Hyperparameter optimization including SMBO and iterated F-racing via irace
- Variable selection with filters and wrappers; cost-sensitive learning and imbalance correction
- OpenML connector and built-in parallelization support
- Detailed tutorial and JMLR paper for citation
Caveats
- Retired: no new features, only severe bug fixes; team explicitly directs users to mlr3
- Not all mlr features exist in mlr3 yet, so migration may require patience or issue-filing
Verdict
Worth studying if you maintain legacy R ML pipelines or want to understand how a mature ecosystem gracefully sunsets itself. Skip it for new projects—use mlr3 instead, as the maintainers themselves insist.