A review by mburnamfink
Python Machine Learning, Second Edition: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow by Vahid Mirjalili, Sebastian Raschka

5.0

This a fantastic introduction to machine learning.

Textbooks in computer science in general, and machine learning in particular, have to walk a delicate line. At one level of high abstraction, everything is mathematical proofs. At a level of low-level cookbookls, it's a matter of just plugging and chugging, treating code as magical invocations without getting at the why. Raschka's book hits the sweet spot between the two exactly, explaining the underlying math, how that math is represented in Python, and then what to call in scikit-learn and tensorflow to actually do it.

Raschka assumes a little familiarity with Python (you should have Anaconda installed, know how to use functions, the basics of classes, what a list comprehension is and why it's cool, as well as the basics of manipulating pandas dataframes) and enough math to not be scared by statistics and matrix notation, but beyond that, everything is clear and elegant. I found Chapter 6, on model evaluation, hyperparameter tuning, and grid search particularly useful as a summary of what to do with simple numerical data with scikitlearn. The later chapters of the book provide the fundamentals of natural language processing and the use of multilayer neural networks and deep convolutional networks to classify images, as well as the unreasonable effectiveness of recurrent neural networks on a variety of tasks.

This is an incredible book. The only thing that prevents it from getting 6 stars is a lack of example problems, but that is what Kaggle is for.