New
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow
A practical, project-driven introduction to machine learning and deep learning with Python
Published
2017
A practical guide to structuring ML projects and making sound technical decisions from problem definition to deployment
Build machine learning systems that work in practice, not just in notebooks, by learning how to frame problems, choose models, and ship reliable pipelines.
Applied machine learning is less about algorithms and more about decisions: what problem to solve, which model to trust, when to stop tuning, and how to ship something that holds up in production. This book gives data scientists and software engineers a shared framework for making those decisions well, covering the full arc from raw data to deployed system. Whether you write the models or the infrastructure around them, you will leave with a concrete, repeatable process.
Most machine learning courses teach you to fit a model. Few teach you to build a system. There is a wide gap between running a Jupyter notebook on clean data and delivering a production ML pipeline that a team can maintain and trust. This book closes that gap.
Andrew and Adam Kelleher draw on real project experience to give you a decision-first approach to applied ML. Instead of surveying every algorithm, they focus on the reasoning that comes before and after the model: how to define success, how to select and validate the right technique for your constraints, and how to structure code and data flows so that the system stays reliable when the real world pushes back.
The book is equally relevant to data scientists who want to write software that ships and to software engineers who need to reason about model behavior and uncertainty. It does not assume you are one or the other. It assumes you are trying to solve a real problem and need a practical framework for doing it.
The techniques here are not tied to a single library or framework. The underlying decisions remain the same whether you are using scikit-learn, XGBoost, or a neural network. Code examples are in Python, kept short and focused on the concept, not the boilerplate.
If you have been building ML prototypes that never quite make it to production, or inheriting pipelines you cannot explain or fix, this book gives you the mental models and structural habits to do the work differently.
Learn how to translate a vague business need into a well-posed machine learning problem, including how to define the prediction target, the cost of errors, and the minimum viable performance threshold.
Develop a systematic approach to exploratory data analysis that surfaces distribution issues, label noise, and leakage before they contaminate your model. You will build a checklist that travels with every new dataset you encounter.
Move beyond accuracy and learn to select metrics that reflect the actual costs and trade-offs in your task, including precision-recall trade-offs, calibration, and ranking metrics for different output types.
Build feature transformations as testable, reproducible pipeline components rather than ad-hoc preprocessing scripts. You will apply these techniques to numerical, categorical, and temporal data.
Learn to match model families to problem constraints, comparing linear models, tree ensembles, and neural approaches on the axes of interpretability, training cost, and prediction latency.
Set up training experiments that produce trustworthy results, covering cross-validation strategies, hyperparameter search, and early stopping without leaking information between splits.
Diagnose why a model underperforms by systematically separating data problems from modeling problems from metric mismatches, and apply targeted fixes for each failure mode.
Structure serving code, versioning, and monitoring so that model degradation and data drift surface as alerts rather than silent errors. You will design a deployment checklist covering inference latency, rollback strategy, and feature consistency.
You should be comfortable with Python and have at least a passing familiarity with core ML concepts like regression, classification, and cross-validation. The book focuses on applied decision-making rather than mathematical derivations, so graduate-level statistics is not required.
The core framework for scoping, evaluating, and deploying ML systems has not changed, and the book's value is precisely that it focuses on those durable decisions rather than specific library versions. Some tooling references may be dated, but the reasoning throughout remains directly applicable.
Neural networks are covered as one option within the model selection framework, but the book is not a deep learning text. Its emphasis is on the process of building ML systems, which applies regardless of which model type you ultimately choose.
Yes, code examples are written in Python using libraries common in 2017, primarily scikit-learn and NumPy. The examples are intentionally short and concept-focused rather than production boilerplate.
Both roles are addressed directly. Data scientists will find a more rigorous structure for the decisions they already make informally, and software engineers will gain the vocabulary and reasoning tools to work confidently on ML systems.
New
A practical, project-driven introduction to machine learning and deep learning with Python
New
An Iterative Process for Production-Ready Machine Learning Applications
by Chip Huyen
New
A rigorous foundation in Bayesian reasoning, probabilistic models, and modern machine learning methods
New
The definitive textbook on intelligent systems, from foundational search and logic to modern machine learning and probabilistic reasoning
by Peter Norvig, Stuart Russell