According to a recent study of GitHub, the de facto online code repository, Python came up as the number one programming language for machine learning and is also the third most commonly used language on GitHub overall. The same study also identified Tensorflow followed by scikit-learn as being the most active and popular machine learning projects on GitHub. Tensorflow, which was developed by the Google Brain Team, is an open-source programming library widely used for machine learning; and scikit-learn is the native Python library for machine learning.
The results of this study are not surprising to those of us who have done some amount of machine learning related development work. But if you are new to Python, Tensorflow and scikit-learn, and would like to invest some of your time and energy to learn how to use these tools in your own machine learning projects or to even beef up your CV, which book should you consider reading? Here’s my “one book” recommendation.
Whether you are a student or a professional who wants to learn how to write codes for machine learning, “Hands-On Machine Learning with Scikit-Learn & TensorFlow” (Amazon Link) is a very good place to start. Aurelien Geron, the author of this book, is a machine learning consultant and a former employee of Google (he led the YouTube’s video classification team from 2013 to 2016). So you can be rest assured that you are reading a book written by someone who knows what he is talking about. It is probably worth pointing out though that this book was published in early 2017, and a new edition is due to released around June 2019 (which I very much look forward to reading). Nevertheless, the contents of this book are still very much relevant today.
As the title suggests, this is a “hands-on” book and, therefore, contains very little theory, but lots of concrete examples to help you gain an intuitive understanding of the machine learning concepts and tools for building intelligent systems. This book will teach you a range of techniques, starting with simple (and frankly pretty boring) linear regression and progressing to deep neural networks (the real stuff!). With exercises in each chapter to help you apply what you have learned, all you need is some programming experience to get started. More specifically, this book will give you a very good hands-on insight into the following areas:
1. What is machine learning and the machine learning landscape (neural networks in particular).
2. How to use scikit-learn to track an example machine learning project end-to-end.
3. Traditional machine learning models, including support vector machines, decision trees, random forests, and ensemble methods.
4. Use the TensorFlow library to build and train neural networks.
5. Neural network architectures, including convolutional neural networks (CNN), recurrent neural networks (RNN), and deep reinforcement learning.
6. Learn techniques for training and scaling deep neural networks.
7. Apply practical code examples without acquiring excessive machine learning theory or algorithm details.
Sounds interesting enough? Well, go to Amazon and get yourself a copy of this book! If it turns out to be not your cup of tea, just return it back!