I was pleased to receive a review copy of this new title from Cambridge University Press, “A Hands-on Introduction to Machine Learning.” The hardcover book is very attractive, well-produced and solid! It will weigh down your backpack for sure. As a university instructor myself, I immediately appreciated author and University of Washington professor Chirag Shah‘s pedagogical approach. This is a gainful learning tool. Every chapter has excellent coverage of the typical machine learning (ML) topics coupled with very helpful “Try It Yourself” sidebars that allow readers to exercise their understanding of the subjects as they progress through the material. Each chapter also includes a “Conceptual Questions” and “Hands-on Examples” feature at the end of each section. I also appreciated the “Further Reading and Resources” and “Notes” resources at the end of each chapter. Most of the code covered in the book uses the Python language although the code is not offered at the book’s website (a note to publishers: it should be a no-brainer to offer downloadable code to save the reader’s time). There is a special appendix “R for Machine Learning” that’s useful to get another perspective of coding for ML. All of this educational material helps the reader treat the book as a self-contained ML course.

Great content for those new to ML

For a standard look on ML, learners will appreciate Part II on Supervised Learning and Part III on Unsupervised Learning. Part II includes topics: Chapter 4 on Regression, and Chapters 5 and 6 on Classification. Part III includes topics: Chapter 7 on Clustering and Chapter 8 on Dimensionality Reduction. These chapters are foundational in terms of directing the reader along the proper path for solving real-life problems using the principles of machine learning. You’ll find general topics like accessing datasets, exploratory data analysis, visualization (with matplotlib), data transformation and feature engineering. The numpy and pandas libraries are used throughout. Of course, you’ll use common ML algorithms from scikit-learn. All the code examples are simple and direct, exactly what a learner new to ML needs. The coverage of popular algorithms is great, for example the classification models included are: kNN, decision trees, random forest, logistic regression, softmax regression, naive Bayes, and SVMs. On the unsupervised side, the book includes various clustering techniques along with dimensionality reduction (PCA and LDA).

Maybe my favorite area of the book is Part IV on neural networks; in part it helps the reader gain appreciation for what’s going with AI today – generative AI. Chapter 9 is a whirlwind introduction to NNs with short discussion and code examples for: perceptrons, multilayer perceptrons (MLPs), forward/back propagation, autoencoders, convolutional neural networks (CNNs), recurrent neural networks (RNNs), and long short-term memory (LSTM). The discussions of these important methods only open the door to these topics as the reader must engage resources outside of the book to fully understand how they work (a strong dose of mathematics included). Chapter 10 turns the corner toward deep learning and deep neural networks. You’ll see code examples of PyTorch using the venerable MNIST dataset in order to build a handwritten digits classifier. You’ll also be introduced to embeddings along with encoders and transformers.

Part V of the book is used to introduce the reader to a variety of contemporary topics that you’ll hear mentioned all the time in 2024: reinforcement learning (RL) and responsible AI.

Instructor Materials

One potentially big feature of this book is all the instructor materials that the author developed to be used along side the text in a class environment. I see the book as a fine choice for an introductory class in ML. The instructor materials are said to include: solutions to many problems and exercises in the textbook, an instructor manual with teaching suggestions including advice for teaching using this textbook in-person and online, sample mid-term assessments, lecture slides for each chapter that instructors can use and adapt for teaching, and figures/tables from the textbook. As eager as I was to evaluate these materials, I was unable to access them due to an overly restrictive process by the publisher. Too bad, because I think using this book as a textbook for a class in ML represents a large potential market that will thus go untapped.


All in all I consider this book as a fine new entry into the field of machine learning and deep learning. I plan to add this title to the bibliography I give to my beginning data science students as an educational resource they can consume just after taking my intro class. Kudos to author Shah for seeing a need for this type of text!

Contributed by Daniel D. Gutierrez, Editor-in-Chief and Resident Data Scientist for insideBIGDATA. In addition to being a tech journalist, Daniel also is a consultant in data scientist, author, educator and sits on a number of advisory boards for various start-up companies. 

Sign up for the free insideBIGDATA newsletter.

Join us on Twitter: 

Join us on LinkedIn: 

Join us on Facebook: