Machine Learning in Action Study Notes
The purpose of this repo is to keep my notes when studying machine learning algorithms.
Chapters in this repo cover two books and are divided in two parts.
Part I - Study notes of the published book "Machine Learning in Action".
This is a great book, introducing the basis of many common machine learning algorithms with demo code in python 2.X. To be fair, the code of this book is good enough as demos of each chapter. But as an audience who is an experienced developer like me, who want to apply these machine learning algorithms in potential real projects, I always want to revise the implementation of each algorithm in my own style, for example, be python 3.X compatible, with more practical libraries, with more managable code styles, and with some extension of my understanding, etc. In short, I want my revised code implmentation and my extension make these algorithms be more friendly for a developer to reference & apply.
Furthermore, for most of the algorithms mentioned in this book, there are many common general purpose implementations in many high level machine learning frameworks. So beside a revised version of each algorithm, I also try to provide an additional implementation for the same solution but with a high level machine learning framework such as scikit-learn, which might be a more practical way if we want to try on or apply these algorithms efficiently in real life.
Part II - Study notes of the free online book "Neural Networks and Deep Learning".
This online book covers the basis of neural networks and deep learning, which are very good supplements to Part I. The best part of this book is it does not focus on applications of neural networks algorithms, but it step-by-step introduces the evolution of neural networks towards deep learning, showing you the problems and common solutions during the evolution. So when finishing the study of this book, you should be confident enough to take look at other neural network applications, demos and frameworks, and be able to understand how to adjust neural network parameters and what the potential issues are.
And similar to the book of part 1, it not only introduces the neural networks algorithms step by step, but also provides the python implementations from scratch and also with detailed comments in the source code.
All the demos in this book are doing classification with the mnist handwriting dataset. The mnist dataset is so popular that you can easily find different implementations with different neural network frameworks such as tensorflow, theano, keras and pytorch. So I don't provide additional demos in the notes of this book like in part 1, you can just google by yourself if you have interests.
- Spyder IDE v3.X with Python 3.X
- numpy - for common science computation
- matplotlib - for simply scatter and line plotting
- pandas - to simplify test data loading
- pydotplus - for graphviz based plotting, e.g. tree plotting
- sklearn - the high level machine learning framework to demo with
- theano - for running neural network demos in GPU for part 2
Part I - Machine Learning in Action
- Supervised Learning
- Unsupervised Learning
- Dimensionality Reduction
Part II - Neural Networks and Deep Learning