Hands-On Machine Learning with Scikit-Learn and TensorFlow
Aurélien Géron's practical textbook for building machine learning systems — code-first, worked end to end, and widely used as the standard bridge between understanding the concepts and actually shipping something.
- First published
- 2019
- Publisher
- O'Reilly Media, Incorporated
- Pages
- 856
- Shelf
- Technology
- Level
- Deep
- ISBN-13
- 9781098122461
Record checked against
Only one source carried a publication date for this work, so the year is uncorroborated.
Catalogue note
- Reads as
- ReferenceBuilt to be consulted rather than read straight through.
- Level
- Advanced / AdvancedAssumes you have read around the subject already.
- Approach
- Practical
- Written for
- Engineers, Specialists and serious readers
Saved in this browser only — no account, nothing sent anywhere. My library
Read this if
- You want to think seriously about what these systems can and cannot do.
- You want something to keep nearby and return to, rather than read once.
- You have read around this already and want a book that assumes it.
What kind of book it is
A working textbook rather than a conceptual one. Every technique is introduced through code that runs, with an accompanying notebook repository, and the reader is expected to execute and modify rather than read.
Géron's background as a practitioner shows in what he chooses to emphasise: the messy parts — data preparation, pipelines, evaluation, deployment — that tutorials skip and real projects spend most of their time on.
Its distinguishing feature is spending time on the messy parts that tutorials skip and projects live in.
Devmark’s reading — not a quotation from the book
The end-to-end project
The second chapter walks through a complete project — framing the problem, getting the data, exploring it, preparing it, selecting a model, tuning it, and presenting the result.
This chapter is the book's most valuable single contribution. It gives a reader the shape of a real project before any individual technique is taught, which is the opposite of how the subject is usually presented and considerably more useful.
Classical machine learning first
Part One covers the pre-deep-learning material properly: linear and logistic regression, support vector machines, decision trees, ensembles, random forests, gradient boosting, and dimensionality reduction.
The ordering is deliberate and correct. A great many practical problems are better solved by gradient boosting on tabular data than by a neural network, and a reader who skips to the deep learning has learned the glamorous half of the subject.
Pipelines and data preparation
His treatment of data preparation as a first-class engineering concern — transformers, pipelines, handling missing values, encoding categories, feature scaling — is more thorough than most books bother with.
The insistence that preparation be expressed as reproducible code rather than as manual steps in a notebook is the practice that most separates working systems from demonstrations.
Evaluation done properly
His coverage of cross-validation, the confusion matrix, precision and recall, the ROC curve, and the consequences of class imbalance.
His repeated warning against evaluating on the test set during development — and his explanation of exactly how that leaks information and produces optimistic estimates — is the discipline most commonly violated by people who learned the subject from tutorials.
Touching the test set during development leaks information and produces an optimistic estimate you will believe.
Devmark’s reading — not a quotation from the book
The deep learning half
Part Two covers neural networks: training deep nets, convolutional networks for vision, recurrent networks and attention for sequences, autoencoders, generative models and reinforcement learning.
The treatment is practical rather than mathematical, and the emphasis is on what actually matters in training — initialisation, normalisation, regularisation, learning rate schedules — rather than on derivations.
The edition problem
This is important for a prospective reader. The field has moved fast and the editions differ substantially: the first used TensorFlow 1's session API, which is obsolete; later editions use Keras and cover transformers.
Buying the wrong edition means learning an API that no longer exists. Anyone acquiring this book should check which edition they are getting and prefer the most recent.
Where it is demanding
It assumes comfortable Python, basic linear algebra, calculus and probability. Géron provides appendices, but a reader without that background will struggle.
It is also long and dense, and using it as intended — running and modifying every notebook — is a substantial time commitment rather than a weekend.
Where it is limited
It is a book about building models, not about the surrounding system. Serving at scale, monitoring, drift detection, data infrastructure and the organisational aspects of deploying a model are touched on and not developed.
It also says very little about fairness, interpretability or the harms literature, which is a real gap in a practical book aimed at people who will deploy these systems.
Why it is the standard recommendation
Because it is the most reliable path from understanding the ideas to having built something that works, and because the end-to-end framing gives a reader the judgement about what matters that a technique-by-technique treatment does not.
Pair it with something on the societal dimension, which it does not provide.
What to take away
- 01Learn the shape of a project firstThe end-to-end chapter before any individual technique is the inverse of the usual order and much more useful.
- 02Classical methods before neural networksA great many real problems are better solved by gradient boosting on tabular data.
- 03Preparation belongs in codeReproducible pipelines rather than manual notebook steps is what separates systems from demonstrations.
- 04Do not touch the test setEvaluating on it during development leaks information and produces an optimistic number you will trust.
- 05Check the editionThe APIs changed substantially between editions; the wrong one teaches an interface that no longer exists.
