✍️ Machine Learning Engineering in 10 Weeks curriculum v1

tl;dr, here's the course, using content primarily from Hands-On Machine Learning with Scikit-Learn and TensorFlow and Andrew Ng's Coursera course on ML:

  • Chapter 2 End-to-End Machine Learning Project
  • Chapter 3 Classification (precision/recall, multiclass)
  • Text feature extraction (from sklearn docs)
  • Chapter 4 Training Models (linear/logistic regression, regularization)
  • Advice for Applying Machine Learning
  • Chapter 5 SVMs (plus kernels)
  • Chapter 6 Decision Trees (basics)
  • Chapter 7 Ensemble Learning and Random Forests (xgboost, RandomForest)
  • Chapter 8 Dimensionality Reduction (PCA, t-SNE, LDA)
  • Machine Learning System Design
  • (Google) Best Practices for ML Engineering

Paper Club (plus a few friends and colleagues) is going to work through this content at a cadence of one meeting every other Wednesday starting late June 2018.

Thought process:

I reviewed content from Andrew Ng's Coursera course, and the textbook just seems both denser and more practical than Ng's course for the content where they overlap (which is about two thirds of it). I see several substitutions:

We can replace all four of these lessons:

  • Linear Regression with One Variable
  • Linear Regression with Multiple Variables
  • Logistic Regression
  • Regularization

With just Chapter 4, and I think Chapter 4 is better anyway, so that's nice. Saves us almost a month!

These lessons have no analogue in the sklearn book (though there is one great chapter in the Deep Learning book by Goodfellow) and seem great:

  • Advice for Applying Machine Learning
  • Machine Learning System Design

Let's also supplement with super practical ML system advice from Google, which I've found enormously valuable: https://developers.google.com/machine-learning/rules-of-ml/

Other lessons I mentioned before:

  • Unsupervised Learning: it's just k-means, which we've covered, so we can skip.
  • Dimensionality Reduction: it's just PCA, which we could do either here or in sklearn with Chap 8. I'd bias Chap 8 because it's in sklearn, and because it also includes a brief overview of other techniques (including t-SNE and LDA, which are pretty common)

I'm not sure about these sections, so let's revisit this at the end:

  • Anomaly Detection - using Gaussian distributions. This should be really easy after all the Bayes stuff.
  • Recommender Systems - we already made a basic collaborative filter with fast.ai (though I'd be down to try this again with Sourceress data)
  • Large Scale Machine Learning - it's about stochastic/minibatch/regular gradient descent... and Map Reduce? I'm skeptical. Probably skip.

The main last practical thing that this sequence misses is NLP and data preprocessing - once you understand how to transform text into numerical features, then all of the above techniques open up to you (ML algorithms only take numbers as inputs). I'll add 1 week on http://scikit-learn.org/stable/modules/feature_extraction.html & maybe some word vector stuff.

So here's the 10ish-week core sequence I recommend, optimized for real-world practicality and covering lots of interesting ground quickly:

  • Chapter 2 End-to-End Machine Learning Project
  • Chapter 3 Classification (precision/recall, multiclass)
  • Chapter 4 Training Models (linear/logistic regression, regularization)
  • Here's the video from our discussion group.
  • Text feature extraction (from sklearn docs)
  • Advice for Applying Machine Learning
  • Chapter 5 SVMs (plus kernels)
  • Chapter 6 Decision Trees (basics)
  • Chapter 7 Ensemble Learning and Random Forests (xgboost, RandomForest)
  • Chapter 8 Dimensionality Reduction (PCA, t-SNE, LDA)
  • Machine Learning System Design
  • (Google) Best Practices for ML Engineering

And let's consider this content optional and decide whether to do it later:

  • Anomaly Detection
  • Recommender Systems