Data science books - theory and practice

In this post I’d like to share some of my recommended books for learning data science and machine learning, both in theory and and practice.


These are all foundational textbooks in machine learning. If you study at least one of them in depth, by which I mean formulating models, deriving and implementing the main inference algorithms, and doing the exercises, you’ll have a solid background. The books can be quite technical if you’re new to machine learning, but once you stick through one, you’ll find others quite accessible.

The Elements of Statistical Learning (ESL), by Jerome H. Friedman, Robert Tibshirani, and Trevor HastieOne of the classics, there’s also an online course and a new textbook accompanied by R code.

Pattern recognition and machine learning (PRML), by Christopher BishopSimilar to ESL, this highly regarded book is another must-read.

Machine Learning: A Probabilistic Perspective, by Kevin R MurphyIf you study PRML thoroughly, you’ll be familiar with most contents in Murphy’s book. Nevertheless a fun and comprehensive book with a strong focus on principled, probabilistic approach to modelling. It also comes with code in Matlab.

Probabilistic Graphical Models, Daphne Koller and Nir FriedmanGraphical models provide a framework for representation, inference, as well as learning of probabilistic models. This powerful framework provides a unifying view to many ML models which otherwise may be viewed as just a bunch of disparate models. There’s also an online course on Coursera.

Reinforcement learning, an introduction, by Richard S. Sutto and Andrew G. BartoDespite still a draft, the second release is well-written and motivates the concepts and applications of RL really well.

Neural networks and deep learning, by Michael Nielsen

Deep Learning, Ian Goodfellow and Yoshua Bengio and Aaron CourvilleMichael Nielsen’s book is more hands-on and contains some cool interactive contents to aid understanding, while Goodfellow et al is more comprehensive. I recommend reading them in the given order.


Data science for business, by Foster Provost and Tom FawcettThis book is accessible to non-technical audience like business managers. It also provides some sound principles on how to execute data science projects. Highly recommended.

R for data science, by Garrett Grolemund and Hadley Wickham, is a must read especially for R users.

Applied predictive modelling, by Kjell Johnson and Max KuhnWritten by the author of the popular R package caret, this is another must-read. It contains many practical tricks and advices for not only modelling but also data preparation suitable for different model classes.

Data Mining Techniques: For Marketing, Sales, and Customer Relationship, by Gordon S. Linoff and Michael J. A. BerryDon’t let the title mislead you, this is a good read on data science techniques in general, not just for CRM.

Data preparation for data mining, by Dorian PylePublished in 1999 but still very relevant today, this book provides a good checklist of things to inspect when preparing data for analysis.

Bandit algorithms for website optimization, by John Myles WhiteThis book presents standard multi-armed bandit algorithms and comes with implementations in several languages.

Practical data science with R, John Mount and Nina ZumelNot as polished as Johnson and Kuhn’s book but has few neat techniques worth knowing.