Book Review: Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

Posted by Peter Bell  /  October 23, 2019

If you’re comfortable with coding in Python and want a quick introduction to both classic and deep learning techniques in Python from an experienced practitioner, "Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems" by Aurélien Géron just might be the book for you!

Blog Templates 800x600 (53)

Aurélien who?

Aurélien Géron is perhaps best known for his role leading the YouTube video classification team from 2013-2016. These days he lives in Singapore, after founding Kiwisoft – an AI training and consulting company.

Jumping right in!

With "Hands-On Machine Learning with Scikit-Learn and TensorFlow,” Géron certainly jumps right in. Within the first 30 pages he provides an overview of Machine Learning (ML) systems, the main challenges in ML systems, and thoughts on testing and validation of models.

In the next 40 pages he takes you through a hands on, end-to-end ML project. Géron shows how you should think about framing a problem, selecting a performance measure, getting the data, performing some exploratory data analysis and visualization to get a sense of the data set, prepping the data for your model, selecting and training the model, fine tuning the model, and then, finally, launching, monitoring, and maintaining the system. If it sounds like a lot, it is! But, all of it is informative and well worth the effort.

Classic ML

Géron then provides an overview of classifiers (a common class of ML solutions) and then runs through the practicalities of working with linear and logistic regressions, Support Vector Machines (SVMs), decision trees, ensemble methods, and then takes some time to look at how to handle dimensionality reduction using Principal Component Analysis (PCA).

It’s a fast and furious introduction to classical ML, but it provides a lot of practical hints and tips that will help you to build good instincts as a data scientist. 

“Hands-On Machine Learning with Scikit-Learn and TensorFlow” is better suited for advanced novices. You already need to be comfortable with coding in Python, and without a background in stats, you could well make poor choices once you start doing your own modeling projects. But if you’re a “show me the code” type of learner, this is a really great way to get introduced to practical ML and you can always “fill in the gaps” later!

Deep learning

After 230 pages dedicated to classical ML, Géron dives right into neural networks and deep learning — one of the most fascinating and fastest growing fields within ML.

In keeping with the hands-on, code focused nature of the book, Géron jumps right into the code, getting you up and running with Tensorflow — one of the most popular libraries for building and training neural nets (the other being Pytorch). Once he’s got you through the basics of getting the code to run, he then takes a step back to provide a conceptual introduction to neural nets. Géron starts with biological systems and then moves on to perceptrons, multi-layer perceptrons, and back propagation.

From there, it’s back to the code. Géron teaches how to train a Multi-Level Perceptron (MLP) and then a Deep Neural Network (DNN).There’s an entire section on training Deep Neural Networks — including optimization techniques such as reusing trained layers, ways to speed up optimization, and techniques for reducing overfitting on the training data set through regularization.

Géron then provides an introduction to the practicalities of distributing TensorFlow across multiple servers — an essential component of training any substantial model. He next digs into Convolutional Neural Networks (CNNs) and Recurrent Neural Networks (RNN’s) — two of the most common types of deep learning configurations.

He then introduces the idea of autoencoders — neural networks that can reduce the dimensionality of data efficiently. And he finished the book up with a very brief introduction to the very large field of reinforcement learning.

A new version is coming

A new version of this book will be released in October 2019. It’s not available yet, but looking at the contents, it seems like there has been a bit of pruning in the classic ML sections and a substantial upgrade to the deep learning. The new edition adds a section on the neural-network library Keras before moving to Tensorflow and adding content on Natural Language Processing, Generative Adversarial Networks and deploying Tensorflow models at scale.

Summing up

It’s definitely worth waiting for the new edition. While the foundations of classic ML haven’t changed much, it looks like "Hands-On Machine Learning with Scikit-Learn and TensorFlow” received a nice upgrade and there seems to be a bunch of updated content – a field in which two years (the last edition was published in 2017) is a lifetime!

If you’re looking for “the one book” that’ll make you a data scientist, this probably isn’t it. But if you’re comfortable with coding and want to get a feel for how a data scientist thinks and works, “Hands-On Machine Learning with Scikit-Learn and TensorFlow” is a really strong introduction to the field!