Trading in the FX market using mechanical trading strategies

My experience with Udacity’s Machine Learning Engineering Nanodegree: Part two

On my last post I talked a bit about the reasons why I decided to go through a machine learning nanodegree at Udacity, what the main components of the degree were and what some of my initial opinions about the course structure and materials were. Today I want to continue this discussion and go deeper into the projects and materials offered at Udacity. I will also talk about the community aspects of the degree, the code reviewers and how all of this influences your experience when you go through the nanodegree progam. I will also give you some advice and hopefully helpful tips that might be useful if you want to go through the Udacity machine learning experience.

–

–

As I previously mentioned one of the main attractive factors of the nanodegree for me was the practical focus that was offered, somewhat different from the more academic focus that is often offered at places like coursera. However this does not mean that the nanodegree does not have theoretical content – it has a significant amount – but it does mean that the depth and difficulty of this content is reduced compared to other courses and the focus on programming and practical problem solving is more intense. So while the course does offer an initial theoretical introduction to things like support vector machine and neural networks in the end you will by no means have become an expert in either of these subjects but you will certainly be able to practically implement an SVM or a NN using commonly used python libraries. The nanodegree focuses on giving you a machine learning toolkit you can use in a practical job that uses machine learning for problem solving rather than an impressive theoretical background you could use to innovate in the specific field of machine learning.

The projects are extremely important to achieve the above. You will face 5 different projects through the nanodegree all of which entail practical applications of supervised learning, unsupervised learning, deep learning and reinforcement learning. Most projects are jupyter python notebooks that you go through and solve, complying with a set rubric that encapsules all the objectives you must achieve while solving the project. In the first project you work on some analysis of the titanic survivor dataset, on the second you work on using machine learning to predict housing prices, the third uses unsupervised learning to create customer segments, the fourth uses reinforcement learning to teach a computer how to play a cab driving game and the fifth project uses deep learning for hand written digit recognition. Finishing these projects is really what advances you within the nanodegree.

–

–

Perhaps the best part of this experience for me were the code reviews I obtained from the Udacity code reviewers. Honestly I had never obtained such helpful and insightful reviews from an online course. In the courses I have done in coursera homework and quizzes are usually evaluated simply by making sure that you get a given output for a given input in your code but no one ever looks at precisely what you have written and offers you helpful advice on how to improve and how to make your code better. Through this nanodegree I always received reviews from people who had actually read my code with helpful insights that helped me improve and encouraging comments highlighting things I had done correctly and constructively criticizing things I had done wrong. Knowing that someone truly looked at your work is extremely useful if you want to learn new things and also eliminate any mistakes you might have made.

The capstone project is also a really interesting part of the nanodegree as you get to choose any problem domain that interests you and tackle it using the things you have learned through the degree. In my case I chose to improve my code for out-of-sample trading system result prediction using unsupervised learning – from which you have probably read a lot in my blog – the images within this post are all taken from my capstone project. In the first image I did some comparison of correlation within input variables, the second shows the label distribution within my database and the third shows the percentage of systems predicted to be profitable for all the symbols within the database. Through the capstone project and the reviews I obtained from Udacity code reviewers I was able to significantly improve my understanding of the out-of-sample prediction problem and catch and correct some problems I hadn’t considered before.

–

–

If you want to get into a machine learning nanodegree it’s also important for you to have some solid python programming skills and some basic grasp of calculus, linear algebra and statistics. Since the coursework is very oriented towards practical applications having a lack of good programming skills will certainly make you advance much more slowly, much more so than if you have weak linear algebra or statistics skills as these are not used as profusely as programming skills. However if you are already a relatively proficient python programmer you will most probably be able to finish this nanodegree in 2-3 months compared to the 12 months that they advertise as “average” in their website. I dedicated around one entire day a week to the nanodegree and was able to finish it in a bit less than 3 months, so finishing this within a short amount of time is clearly doable if you have the dedication and base skills to go through it fast. A good python programmer dedicating this 40 hours/week could probably finish this nanodegree in less than a month.

Finally I also want to talk a bit about the Udacity community. Although I rarely used the forums you will certainly find a lot of help there if you are having trouble with any quizzes or any projects. There are always people from Udacity there to help you out and they always seem to answer questions from students rather promptly. They also have chats where you can engage more directly with other staff and students, something which may be a bigger plus for those of you looking for a more social experience (I don’t have an opinion about these chats as I never used them). Of course if you’re looking to learn more about machine learning in trading and how you too can code your own ML based trading strategies please consider joining Asirikuy.com, a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading.strategies.