# Machine Learning in a Week

### Per ă»5 min read

Getting into machine learning (ml) can seem like an unachievable task from the outside.

And it definitely can be, if you attack it from the wrongÂ end.

However, after dedicating one week to learning the basics of the subject, I found it to be much more accessible than I anticipated.

This article is intended to give others whoâre interested in getting into ml a roadmap of how to get started, drawing from the experiences I made in my intro week.

### Background

Before my machine learning week, I had been reading about the subject for a while, and had gone through half of Andrew Ngâs course on Coursera and a few other theoretical courses. So I had a tiny bit of conceptual understanding of ml, though I was completely unable to transfer any of my knowledge into code. This is what I wanted to change.

I wanted to be able to solve problems with ml by the end of the week, even through this meant skipping a lot of fundamentals, and going for a top-down approach, instead of bottoms up.

After asking for advice on Hacker News, I came to the conclusion that Pythonâs Scikit Learn-module was the best starting point. This module gives you a wealth of algorithms to choose from, reducing the actual machine learning to a few lines of code.

### Monday: Learning some practicalities

I started off the week by looking for video tutorials which involved Scikit Learn. I finally landed on Sentdexâs tutorial on how to use ml for investing in stocks, which gave me the necessary knowledge to move on to the next step.

The good thing about the Sentdex tutorial is that the instructor takes you through all the steps of gathering the data. As you go along, you realize that fetching and cleaning up the data can be much more time consuming than doing the actually machine learning. So the ability to write scripts to scrape data from files or crawl the web are essential skills for aspiring machine learning geeks.

I have re-watched several of the videos later on, to help me when Iâve been stuck with problems, so Iâd recommend you to do the same.

However, if you already know how to scrape data from websites, this tutorial might not be the perfect fit, as a lot of the videos evolve around data fetching. In that case, the Udacityâs Intro to Machine Learning might be a better place to start.

### Tuesday: Applying it to a realÂ problem

Tuesday I wanted to see if I could use what I had learned to solve an actual problem. As another developer in my coding cooperative was working on Bank of Englandâs data visualization competition, I teamed up with him to check out the datasets the bank has released. The most interesting data was their household surveys. This is an annual survey the bank perform on a few thousand households, regarding money related subjects.

The problem we decided to solve was the following:

Given a persons education level, age and income, can the computer predict its gender?

I played around with the dataset, spent a few hours cleaning up the data, and used the Scikit Learn map to find a suitable algorithm for the problem.

We ended up with a success ratio at around 63%, which isnât impressive at all. But the machine did at least manage to guess a little better than flipping a coin, which would have given a success rate at 50%.

Seeing results is like fuel to your motivation, so Iâd recommend you doing this for yourself, once you have a basic grasp of how to use Scikit Learn.

Itâs a pivotal moment when you realize that you can start using ml to solve in real life problems.

### Wednesday: From the groundÂ up

After playing around with various Scikit Learn modules, I decided to try and write a linear regression algorithm from the ground up.

I wanted to do this, because I felt (and still feel) that I really donât understand whatâs happening on under the hood.

Luckily, the Coursera course goes into detail on how a few of the algorithms work, which came to great use at this point. More specifically, it describes the underlying concepts of using linear regression with gradient descent.

This has definitely been the most effective of learning technique, as it forces you to understand the steps that are going on âunder the hoodâ. I strongly recommend you to do this at some point.

I plan to rewrite my own implementations of more complex algorithms as I go along, but I prefer doing this after Iâve played around with the respective algorithms in Scikit Learn.

### Thursday: Start competing

On Thursday, I started doing Kaggleâs introductory tutorials. Kaggle is a platform for machine learning competitions, where you can submit solutions to problems released by companies or organizationsÂ .

I recommend you trying out Kaggle after having a little bit of a theoretical and practical understanding of machine learning. Youâll need this in order to start using Kaggle. Otherwise, it will be more frustrating than rewarding.

The Bag of Words tutorial guides you through every steps you need to take in order to enter a submission to a competition, plus gives you a brief and exciting introduction into Natural Language Processing (NLP). I ended the tutorial with much higher interest in NLP than I had when entering it.

### Friday: Back toÂ school

Friday, I continued working on the Kaggle tutorials, and also started Udacityâs Intro to Machine Learning. Iâm currently half ways through, and find it quite enjoyable.

Itâs a lot easier the Coursera course, as it doesnât go in depth in the algorithms. But itâs also more practical, as it teaches you Scikit Learn, which is a whole lot easier to apply to the real world than writing algorithms from the ground up in Octave, as you do in the Coursera course.

### The roadÂ ahead

Doing it for a week hasnât just been great fun, it has also helped my awareness of its usefulness of machine learning in society. The more I learn about it, the more I see which areas it can be used to solve problems.

If youâre interested in getting into machine learning, I strongly recommend you setting off a few days or evenings and simply dive intoÂ it.

Choose a top down approach if youâre not ready for the heavy stuff, and get into problem solving as quickly as possible.

Good luck!

Thanks for reading! My name is Per, Iâm the co-founder of GitSpeak and Scrimba, and I love helping people learn new skills. Follow me on Twitter and Instagram if youâd like to stay in touch.