While I’m constantly reading journal papers and other books, I’ve never had much success with reading textbooks. This is partly because textbooks seem to require a much higher sustained effort to get through, especially anything technical. However, last month I found the time to read through Machine Learning for Hackers by Drew Conway and John Myles White. Much of the modeling work done in cognitive science and mathematical psychology stems from work in machine learning and statistics, not only in the mathematical aspects, but also in the applied aspects of data analysis and modeling. I figured a book like this would be a good introduction into many of these different areas.

What I liked

Coming from a background of programming, knowing a little bit of R, and a little bit of statistics, Machine Learning for Hackers is an excellent introduction to practical machine learning. Overall, it’s a written in an easy-to-read style, with a number of motivating examples for various machine learning algorithms. For somebody who has recently shifted to using R for most of my daily programming, the book is a useful resource for picking up various R idioms, as well as a solid introduction to a variety of different R packages I’ve been starting to use on a regular basis, such as plyr and ggplot2. The book also exemplifies numerous good practices for practical machine learning, such as visualizing your data, using cross-validation and regularisation, and comparing models.

One thing which may turn people off from the book is the sheer amount of time and code spent preprocessing the data into a form that can be used by machine learning algorithms, rather than actually playing with the machine learning algorithms themselves. However, this level of preprocessing of their data is on par with how much I do in my own work before I start having fun with my models, so I feel accurately conveying how much data munging is required is a positive in my book.

What I didn’t like

I’m not a huge fan of the title, I think it would be more appropriately named ‘Machine Learning in R’. In order to get the most out of this book, readers should definitely have some previous experience with R. The unhappy reviews on Amazon suggest that a number of people were roped in by the title, but then disappointed as they tripped up from R’s syntactic quirks than on the real material in the book. Another related issue is that because a lot of the book is reliant on a number of R-specific packages, much of the code examples would not be as beneficial. Throughout the book, I also felt that the written explanations behind some of the algorithms did not provide a good intuition of why things behaved the way they did, and would’ve liked to have seen some equations. However, I can sympathize with the authors in not including any heavy math in a book geared towards practical machine learning. Additionally, there is one unfortunate chapter in the book where they attempt to describe social networks with Twitter using the Google SocialGraph API. As the book went to print, Google decided to close down its SocialGraph API rendering the code examples of the chapter useless. However, the ideas behind the chapter are very interesting and I’d love to see a different implementation of it someday.

Summary

Despite its shortcomings, for anybody who knows a little bit of R and would like to learn more about practical machine learning, I would heartily recommend this book. It has provided me with a stepping stone to try my luck in Kaggle competitions, as well as diving deeper into machine learning.


Back to posts


comments powered by Disqus