# ML packages in R: caret v e1071

I've looked and surprisingly have not found too much discussion on the relative strengths of the caret and e1071 package. From my understanding, these packages perform many of the same ML algorithms. With that in mind, I'm interested in what those practitioners who have experience with both think these packages relative strengths and weaknesses are. What do you think about readability of code, ease of coding, methods, speed, etc...

In particular I'm interested in multi-class SVM

• If you want to compare packages with similar functionality, compare caret and mlr. It's my impression that mlr is a second-generation answer that's been influenced by Python's SciKit-Learn. For whatever reason, I'veI never had much luck with caret, but haven't gotten to try mlr. – Wayne Feb 28 '16 at 18:44

I think that caret and e1071 serve difference purposes. First lets discuss caret, its closest competitor is the mlr package. Both are meta packages that allow to optimize models across parameters. Take for example a problem where you are not sure whether you would want to use Lasso or Ridge to create a model. As explained here caret allows to choose the optimal lambda based on different type of cross validations.
The e1071 package instead is a bag of functions developed by the TU Wien. It is probably one of the most popular packages for support vector machines which are used by caret. But its goal is very different than caret, it implements learning algorithms and other functions whereas caret seeks to find the best parameter in learning models.
All most all the professors (in my univ) would show students examples in e1071. The somewhat weird name e1071 is from a course name.
However, if you have hand-on experience on industry or kaggle, you would find the preprocessing functions of caret is quiet useful. Specify what you want by several arguments. You get normalization, fill NAs, cross validation etc. Extremely easy. No headache at all.