I’ve been using mlr a little to learn about machine learning, but recently found out about caret.

The way I understand it is that both are wrappers to various ML packages, but have slightly different approaches. Although mlr appears to also wrap some things from caret - so maybe we can sort of consider mlr a superset of caret.

I’m of a mind to stick with mlr for that reason, to save having to switch or learn both. But I’ve also heard the author of caret has joined the tidyverse people - so maybe this will become the de facto standard now.

I’ve obviously used mlr, and read a bit about caret, but given my relative lack of ML experience I don’t feel I’m particularly qualified to make an educated assessment of the two.

Any views on the pros/cons of the two packages, which covers more stuff, which has a more streamlined approach, which is more flexible, any other comments etc etc?

Edit: apologies for not posting this to datascience instead, that seems rather dominated by Python (no mlr or caret tags). Maybe stackoverflow would be better, but I’m quite interested in statisticians view who use them.

  • 5
    $\begingroup$ Personally I feel these kind of "compare & contrast" questions about software meet the "requires statistical expertise to answer" criterion, & are of interest to a wider group than (potential) users of the software concerned. $\endgroup$ Jul 8, 2018 at 12:39
  • 2
    $\begingroup$ This comprehensive comparison is helpful: philipppro.github.io/2018-11-9-mlr_vs_caret. Note that mlr3 has now replaced mlr. mlr3 is in many ways superior (more flexible) and IMO the best solution right now - also compared to scikit-learn. $\endgroup$ Jan 29, 2020 at 8:52

1 Answer 1


I've been using caret for a long time, and love it. I only discovered mlr today, and have spent most of the day learning how to use it. I discovered mlr because I was searching for a way to produce a partial dependence plot of variable importances from random forest models.

After one day's experience, I'm actually leaning toward switching to mlr! So I would say stick with mlr unless you have a compelling reason to devote time and energy into learning caret.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.