Resources to become a Ninja: Machine Learning

Hi folks, I started a series about resources to become a ninja in some technologies. It was a way that I found to share the resources that I have been reading recently. In this post I will show resources to learn machine learning.


Machine Learning by Peter Flach: Introductory textbook. It starts discussing how a spam filter works and then talk about machine learning elements (Features, Tasks and Models). After that, it shows the existent models (Rules based, probabilistics, tree based and so on).

Pattern Recognition and Machine Learning by Christopher M. Bishop: It covers a lot of Machine Learning Techniques (Regression, Classification, Neural Networks and so on), focusing in the math behind each technique. No previous knowledge of pattern recognition or machine learning is required, but good math skills will help a lot.


There are some free Machine Learning courses that I recommend:

Coursera Machine Learning Course by Andrew Ng: This course provide a introduction to machine learning. It covers supervised learning (regression, classification, neural networks, support vector machines), unsupervised learning (clustering, deep learning). It uses Octave to solve the exercises. This course is offered few times in the year, so it’s good to see when it will be offered.

Caltech Machine Learning Course by Yaser Abu-Mostafa: It has 18 lectures with 60 minute each + homeworks. It covers less topics than Cousera’s Course (only supervised learning).

Coursera Neural Networks Course by Geoffrey Hinton: Course about Neural Networks and how it’s used in speech and object recognition, image segmentation, modeling language and human motion.

Machine Learning with Python

I’m studying machine learning with python. Below is the resources that i have been using.

Scikit-Learn: Python library with machine learning techniques already implemented.

An Introduction to scikit-learn: Machine Learning in Python by Jake Vanderplas: Talk given at PyConf 2013. 3h-tutorial covering machine learning concepts and scikit-learn package.

Advanced Machine Learning with scikit-learn by Olivier Grisel: Offers an in-depth experience of methods and tools for the Machine Learning practitioner through a selection of advanced features of scikit-learn and related projects. Scikit-learn/Machine Learning experience is required.

Practicing Machine Learning

Kaggle Competitions: Machine Learning is like programming, you have to practice to become a expert. Kaggles offers a lot of machine learning puzzles, you can use them for learning. If you are a top performer, there are competitions with money prizes.

Call for Suggestions

The intent is always improve this list. If you know other resources to learning Machine Learning, you are welcome to contribute!


  1. Comment by Terry Smith:

    Doesn’t Kaggle keep your work?

  2. Comment by Zbigniew Siciarz:

    Programming Collective Intelligence ( is another great introductory book using Python in the examples.

    • Comment by paulo ortins:

      Is this book good in these days or is it considered old ?

      • Comment by Stefan Koch:

        I bought and used it some years ago, but the methods in there are still relevant and used. However, the practical approach is really a problem for the book. It features several examples using APIs which might not exist anymore (I do not know). Already when I used it, some APIs were not exactly the same anymore.

        Some of the APIs used are Kayak, ebay, Facebook.

        They are not essential for using the book (usually used at the end of chapters), but in my opinion they are an important feature when deciding for such a practical approach.

        Thus, I’d only recommend it to people, from whom I know that they are willing to read documentations of new APIs (on the developer website) and adjust the book’s examples to the new APIs.

  3. Comment by Chris Ismael:

    This list of 40+ Machine learning APIs is also worth checking –

  4. Comment by Junaid:

    Machine Learning for Hackers by Drew Conway and John Myles White is a good read.

  5. Comment by Junaid:

    Machine Learning for Hackers by Drew Conway and John Myles White is a good read. I have neen reading it and it is very good.

  6. Comment by John Galt:

    Hi Paulo,

    I have completed Andrew’s course on Machine Learning and plan to pursue Dr. Yaser’s course on edX. While Andrew’s course was in Octave, I do not know about the Dr. Yaser’s course. Can you share some insights. Also, from what I have researched it appears that Python is the way to go for Machine Learning. I have limited experience in Python, Can you suggest the best way to get started with scikit.

    Thanks and nice compilation of resources!

Leave a Reply

Your email address will not be published. Required fields are marked *