I'm in search of a good book about Machine Learning.


  • Good theoretical depth (while being a ML beginner, I hold a degree in mathematics), but accompained with good examples and plenty of practical stuff.

  • Python as language for presenting examples, with R as a second option.

  • Not outdated. In some other ML book advices on stackoverflow, many suggest "programming collective intelligence", but it seems a bit old (2012).

  • 1
    $\begingroup$ You may want to look at these, although they aren't necessarily Python-specific. $\endgroup$ Aug 4 '15 at 16:01
  • $\begingroup$ You can find some, in these links: github.com/josephmisiti/awesome-machine-learning - Awesome ML on github. datasciencemasters.org - Open source data science masters. Both of them are super sets to what you need, but you might very well like to have a look at them. As these don't answer the question, I am them in a comment. $\endgroup$
    – Dawny33
    Aug 11 '15 at 10:40

As mentioned in the page linked to by gung, the Elements of Statistical Learning is a great, in-depth reference. An Introduction to Statistical Learning is a more approachable book that covers many of the same topics and also provides examples in R.

I have also found Applied Predictive Modeling to be a really good, practical machine learning reference that has examples in R.

A recent Machine Learning book for Python is Building Machine Learning Systems with Python. I haven't used it yet, but it seems to provide a pretty good intro to machine learning.

Lastly, the scikit-learn Examples page provides many good examples if you already have an idea of the theory behind what you're trying to do.


I would recommend that you get two books:

  1. General reference

    I can definitely recommend Pattern Recognition and Machine Learning by Christopher Bishop. It is a bit older (2006) but you will obtain the foundation to dive in state of the art research papers.

    The already mentioned Elements of Statistical Learning is also a good starting point. Especially as you can download it for free.

  2. Python / Programming It would be good to know whether you have previous programming experience in a scripting language (Python, R, Matlab). It is quite hard to find a book that provides both an adequate technical level and good programming examples.

    If you don't have prior knowledge in "statistical programming" I would recommend a book such as Python for Data Analysis by Wes McKinney. My experience has shown that data analysis beginner have more problems with the data itself (formatting, merging) than with algorithms as there are normally toolboxes with already implemented algorithms.


Murphy's "Machine Learning" is a good book with many examples. They use MATLAB as a programming language, which means most of it can be easily run using Octave or translated to Python.


A very recent book is Data Science from Scratch by Grus, which covers "k-nearest Neighbors, Naive Bayes, linear and logistic regression, decision trees, neural networks, and clustering." I haven't read it myself, but I have heard good things.


A Course in Machine Learning by Hal Daumé III (227 pages, 2013-2017)
aims to build intuition, with a nice blend of narrative, diagrams, equations and pseudocode (not python); the lively teacher comes through. One can download the whole book pdf, or individual chapters:

Decision Trees
Limits of Learning
Geometry and Nearest Neighbors
The Perceptron
Practical Issues
Beyond Binary Classification
Linear Models
Bias and Fairness
Probabilistic Modeling
Neural Networks
Kernel Methods
Learning Theory
Ensemble Methods
Efficient Learning
Unsupervised Learning
Expectation Maximization
Structured Prediction
Imitation Learning


In my experience I recommend the book Practical Econometrics with Python. I love this book because links theory with real examples in Python. It goes from basic topics like OLS to advanced topics like VARMA.

  • 2
    $\begingroup$ An econometrics text that goes beyond OLS to include VARMA doesn't sound like a machine learning book to me. $\endgroup$ Oct 30 '20 at 17:48
  • $\begingroup$ @gung-ReinstateMonica econometrics gives you the statistical base to developed machine learning models. Also econometrics can be considered part of machine learning and sirve to introduce you to the methodology of how to develop a well specified model. $\endgroup$
    – dany
    Oct 31 '20 at 18:10
  • $\begingroup$ I'm familiar w/ econometrics. I'm also familiar with machine learning. I think it's safe to say very few people have ever started with econometrics as a basis for moving into machine learning. $\endgroup$ Nov 1 '20 at 1:15

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