It isn’t often that I get excited about a book in my field of data science, but I must admit that I was highly energized the first time I thumbed through a new copy of Machine Learning for Hackers by Drew Conway and John Myles White courtesy of O’Reilly Media. This is not a reference book or a standard programming tutorial on machine learning. For a good reference on theory, you go with Hastie, Tibshirani,and Friedman’s The Elements of Statistical Learning (now available as a free PDF download). For tutorials, there are a fair number of sources that can walk you through the use of exploratory data analysis, linear regression, classifiers, principle component analysis, etc. But what this book delivers are the authors – Drew Conway and John Myles White – and their wisdom for how to work with data, how to explore data, the steps required for manipulating the data, and finally the understanding for how to use machine learning methods.
In computer-based modeling in general and data analysis in particular, one thing that is often hard to convey is that the purpose of computing is not numbers, but insight. The effects of this problem are seen in graduate level education, even from the best schools, by teaching how to drive a computer program, but not showing how to interpret results or how to ask question about the results. Textbooks are often either theoretical or intended to provide a glimpse of select applications, and always in bounded chunks. Computer application books are often built around the capabilities of the software in question, but often stop at the edge of the capabilities of the application or environment in question. What is needed is not to teach methods or tools, but to teach wisdom. The ideal is to be able to sit side by side with an expert who can walk you through a data set and ask questions, get answers, and to think about what to do next, whether the answer is what was expected or not.
This is how Conway and White do it. For each topic, they open up with a discussion of the problem domain, the tools to be used, and sometimes a playful example. But then they go through a substantive example, and the narrative in the text is where they shine. They take a messy data set and work through the data munging tasks needed to get it into useable form, then the initial exploratory steps where you gain understanding of problem, and how to analyze it, and finally the analysis step using machine learning algorithms along with the presentation of the results.
Many believe that in learning a programming language, it is often beneficial to have two books for reference (other than tutorials), one that is a formal reference (i.e. how to do something), and one a morality reference, how you should approach doing something. In data analysis, you should know the theory/methodology and how to use the tools at hand to apply the methodology, but also how to think about problems. And short of an apprenticeship with a Ph.D. in computer science or statistics, this book does very well in this area.