# The Guerrilla Guide to Machine Learning with Python

Here is a bare bones take on learning machine learning with Python, a complete course for the quick study hacker with no time (or patience) to spare.

Sure, there are lots of tutorials and overviews on gaining the insight you need into picking up machine learning, but many (most?) of them take the long view: get a foundation first, learn the basics next, then learn a bit of complementary theory before getting too far ahead of yourself in practical terms, take a step back, try your hand at a few examples, undertake a project on your own... This is all great advice, and a great approach to learning... well, almost anything.

I know, I know... too corny to be funny.

But let's say you're not starting from scratch. Or you're a savant. Or you don't have the patience to go through all of the motions. Let's say you want to hit the ground running and scramble under pressure to learn everything right now. The best approach? Ideally, no, but I'm in no position to judge. I work best under pressure, and can sympathize with the impatient among us who just want to get on with things.

Let's be clear: this is assuredly not the path to achieve greatness quickly. With learning machine learning -- much as with machine learning itself -- there is no free lunch. However, getting a practical overview for the purposes of testing the waters and deciding whether learning more about the topic is what you are after, or if you already posses a solid theoretical understanding of much of these (or related) concepts, the way of the guerrilla may be for you.

With that in mind, here is a bare bones take on learning machine learning with Python, a complete course for the quick study hacker with no time (or patience) to spare.

### Preparing and Learning Python

Since this is all about **Python** machine learning, we start with Google's Python course. The video playlist is below, and the accompanying materials are found here.

Once we get that taken care of, we want to install the Python scientific stack using Anaconda, as shown in the below video.

### Machine Learning Crash Course

For a **very** crash course on machine learning itself, watch Melanie Warrick's "How to Get Started with Machine Learning" talk from PyCon 2014.

### Pandas for Data Analysis

Since much data wrangling, munging, and manipulation is done using the Pandas library, getting a solid look at data preparation with the library is essential enough to spend some time learning it well. Watch Jonathan Rocher's SciPy 2016 tutorial on this very subject.

### Scikit-learn for Machine Learning

And on to the undisputed heavyweight for Python machine learning: Scikit-learn. This is a general purpose machine learning library with dozens of algorithms and associated tools refined through years of open source collaboration. To get going with Scikit-learn, watch Andreas Mueller and Sebastian Raschka's tutorial in 2 parts, also from SciPy 2016.

### Deep Learning without a PhD

On to deep learning... this talk by Martin Görner covers an introduction to deep learning, and gives treatment of both convolutional and recurrent neural network architectures, all with an emphasis on the practical. See the video of the talk below, and check out the corresponding code lab here (covers convolutional neural networks).

### Looking for More?

A logical next step may be covering individual algorithms in more depth, and these are but a few additional modest resources in this direction:

- 7 Steps to Mastering Machine Learning With Python
- 7 More Steps to Mastering Machine Learning With Python
- 7 Steps to Understanding Deep Learning

Hopefully this is enough to get the motivated hacker up and practicing with machine learning in a few days. It's not a complete course, however; understanding the underlying statistical building blocks of machine learning takes years, and becoming proficient in the practical will take hundreds of hours of doing. However, no one said you can't get your hands dirty and have some introductory fun on the way to perfecting a new craft.

**Related**: