Brief Review
This is definetly a refreshing book after you read Bishop or even Calin’s book. I promise, this book is really fun. You’ll work with some real projects. This book is probably one of the books I would recommend first to someone who wants to actually start doing machine learning. Instead of spending most of the time asking why every equation works, this book asks a much more practical question: How do I actually build this thing? And I think that is exactly what makes this book so good.
Aurélien Géron takes you through machine learning almost like you are working on real projects together. You do not only read about regression, classification, decision trees, random forests, neural networks, or clustering. You actually implement them, train them, evaluate them, tune them, make mistakes, and see what happens.
The book mainly uses Scikit-Learn for traditional machine learning and Keras with TensorFlow for deep learning. Because of that, it also gives you a very good introduction to the tools that are commonly used when working with machine learning in Python. The first part focuses mostly on classical machine learning. You will learn about linear regression, classification, support vector machines, decision trees, random forests, ensemble learning, dimensionality reduction, clustering, and several other important algorithms.
What I like is that Géron does not simply show you something like:
model.fit(X, y)
and then move to the next chapter. He explains what you need to do before and after that line too. How should you prepare the dataset? How do you handle missing values? How should categorical variables be processed? Should the features be scaled? How do you split training and validation data? How do you choose the right performance metric? How do you perform cross-validation? How do you tune hyperparameters? These things may sound less exciting than building a neural network, but in real machine learning projects, they are extremely important.
You will quickly realize that training the model itself is sometimes the easiest part. Preparing good data, choosing the correct evaluation method, avoiding data leakage, selecting useful features, and understanding why your model performs badly can take much more effort. And I think this book does a very good job of introducing that mindset.
After building the machine learning foundation, the book moves into deep learning. Here you start working with artificial neural networks using Keras and TensorFlow. You will learn how to build and train neural networks, understand different activation functions, optimizers, initialization methods, regularization techniques, and other components that are necessary for training deeper models. Then the architectures become more interesting.
You will encounter Convolutional Neural Networks for image-related problems, Recurrent Neural Networks and sequence models, natural language processing, attention mechanisms, autoencoders, generative models, and several other modern deep learning concepts.
Another thing I really like about this book is how many experiments you can do yourself. You can change parameters, replace models, modify the neural network architecture, change the number of layers, try another optimizer, and immediately see how the result changes.
For me, this kind of experimentation is extremely important when learning machine learning. You can read twenty pages explaining what an overfitting model looks like, but seeing your own training accuracy reaching almost 100% while your validation accuracy becomes terrible will probably make you understand overfitting much faster.
Target Readers
If you are relatively new to machine learning and already know some basic Python, I think this is one of the best books you can start with.
You do not need to have a strong mathematical background before opening it. Of course, knowing some linear algebra, calculus, probability, and statistics will help you understand the concepts more deeply, but the book does not expect you to become a mathematician before training your first model. I think this book is especially suitable for students, engineers, programmers, researchers from other fields, or basically anyone who wants to start applying machine learning to real problems.
It is also particularly useful if you come from another engineering or scientific field. You can learn the machine learning workflow first and then slowly connect it with your own problems, whether that is aerospace, fluid dynamics, combustion, finance, biology, or something completely different. However, if you already know how to train machine learning models and your objective is to understand the deepest mathematical theory behind them, then this book alone will probably not be enough. That is where books like Bishop and Calin become much more useful.