The Start of my Machine Learning journey
The start of my journey into the world of Machine Learning, from learning Python to understanding the underlying mathematics of ML algorithms.
During my studies at Imperial College London - 3ish years ago - I was introduced to the topic of Machine Learning, an area that I had always been interested about.
At that time, not only I didn't know python, as from sklearn.decomposition import PCA
wasn’t allowed. Therefore, we had to write the PCA (and other) algorithms in Matlab from scratch, which was great because it exposed us to the maths behind each algorithm.
The gif above is from my graduation at Royal Albert Hall with a MSc. in Control Systems with Distinction.
After concluding my thesis (and paper): "Energy savings from an Ecological Cooperative Adaptive Cruise Control: a Battery Electric Vehicle platoon investigation", which was presented at the 2019 European Control Conference in Napoli, I had finally time to focus on Machine Learning topics during my spare time through late hours and into weekends.
I started by doing the famous MOOC “Machine Learning - Andrew Ng”. Saying that the course was good is an understatement. I ended up spending a long time on the course as I was taking notes and revising daily; I was still behaving like a university student even without the exam at the end! Not only the theory is really detailed, but the coursework in Matlab allowed me to understand what’s going on under the hood. Given that I was already a heavy Matlab user, due to its usage throughout my entire academic journey, I could focus on the ML section.
After this course, I knew that I had learnt a lot, but I also knew that if I wanted to use ML for real-applications, I’d have to learn Python. Given that I knew Matlab, I choose to start reading a python book that had Data Science application in mind. Hence, I started reading “Python Data Science Handbook”. This, along with several hours of practicing on available datasets, has taught me pretty much all I know about Numpy, Pandas and Matplotlib. Although this book also contains a last chapter with ML algorithms, these are rather brief.
In my previous job at Nurvv, where I worked as Sensor Fusion Engineer, I developed a python analysis tool that parsed all the raw data from a running session and conveyed that information into meaningful plots. This allowed us to analyse whether a run was successful from the Firmware side of things, and this was critical for our development. This tool was created mainly from the knowledged gathered from the book mentioned above.
Following this, I was rather confident with my Python skills. Therefore, I wanted to crack-on learning how to use ML algorithms with Python through the beauty of imports. It comes without saying that I had to start from the best-seller “Hands-on Machine Learning with Scikit-Learn, Keras and TensorFlow”. This book was what I was expecting and more. From time to time, when I’m working on personal projects, I still flick through it. This book also allowed me to develop many more personal projects (most of them public in my GitHub, as I’m a big Open-Source fan — you should know that as I made Gamestonk Terminal repository public).
The project that has been my biggest challenge was working with a friend on his PhD thesis entitled “Modelling and Forecasting of Time-Series: A data science approach that compares classic methodologies with deep learning methodologies”. Not only interpreting and discussing results but writing the code behind it. S/O to the resources: “Forecasting: Principles and Practice” and “https://machinelearningmastery.com”. Without these, this work would have been much harder.
Throughout my short journey, I followed many people related with DS. People that I thought that in some shape or form added value through their posts. One of these, was Andriy Burkov. I remember when he started talking about creating the “The Hundred-Page Machine Learning Book” and specifically, I remember his Linkedin's poll to select the colour of one of the bubbles for his books' cover. I voted purple; the result was yellow. So, I took the freedom to fix the cover of his book, as you can see below.
My gecko Reidid on “The Hundred-Page Machine Learning Book”, in order to keep industry standards of ML books with reptiles.
I really enjoyed his book since it can explain everything, while keeping it simple and short. As I learned at University, Keep It Simple, Stupid. Also, his book is distributed in a “read first, buy later” principle. This meant that I was able to flick through the content of the book before buying it. Personally, I think this should be adopted more often, at least for technical books.
Finally, last summer, while on holiday in Portugal, I read “Approaching (almost) any machine learning”, which I found to be great for people that have read about the theory but were wondering where/how to apply it.
The next ML books in my list are:
- Deep Learning — Aaron Courville, Ian Goodfellow, and Yoshua Bengio
- The Elements of Statistical Learning — Jerome H. Friedman, Robert Tibshirani e Trevor Hastie
- Pattern Recognition and Machine Learning — Christopher Bishop
- Understanding Machine Learning: From Theory to Algorithms — Shai Ben-David and Shai Shalev-Shwartz
Let me know if you think these are good books, or if there are others that you’d recommend.