How can I start programming machine learning?

If you’re looking to start programming in machine learning then you will probably be wondering what the best way to start would be.

This post will show you how to start programming in machine learning.

Here is the recommended sequence that you can take to learn machine learning from being an absolute beginner to having a solid understanding of how to implement the different machine learning algorithms effectively.

  1. Take the machine learning course taught by Andrew Ng that has no prerequisites
  2. Learn Python programming with this course
  3. Learn Data analysis in Python with this Youtube series
  4. Take the deep learning course taught by Andrew Ng
  5. Read this book or watch this Youtube series on how to implement machine learning in Python
  6. Start applying your knowledge of machine learning on Kaggle competitions
  7. Learn calculus, linear algebra and probability on edX
  8. Take this more advanced course on machine learning offered by MIT

It is at step 6 that you will be able to program in machine learning effectively. Steps 7 and 8 are recommended if you want to get a solid understanding of the mathematics that goes into the machine learning algorithms and of how to apply them in a more statistically vetted way.

I recommend learning Python since it is the most popular machine learning language and most machine learning tutorials are done in Python. If you already know how to program in Python then you can skip step 4.

If you already know linear algebra, calculus, and probability then my advice to you would be to learn how to program in Python then to skip to step 8 and then to apply your knowledge on your own projects.

Skills that get used in machine learning

Machine learning is where statistical algorithms are applied to data that allows for predictions to be made about new pieces of data.

To learn how to apply the machine learning algorithms it is necessary for you to know how to program, how to do data preprocessing in that programming language, what the machine learning models are and how to apply them in that programming language.

To be able to understand how the machine learning algorithms work mathematically it is necessary to know calculus, linear algebra and probability theory.

Take a course on machine learning

To start programming in machine learning the first thing that I would recommend that you do would be to take an introductory course on machine learning.

The course that I would recommend would be this one which is taught by Andrew Ng from Stanford University. You do not need to have any prior knowledge to take the course.

By taking the course straight away you will be able to see whether or not machine learning is something that you are interested in before having to invest a lot of time in learning programming and mathematics.

Learn a programming language if you haven’t already

After taking the introductory course and deciding that machine learning is a field that you would like to enter then it would be time for you to learn a programming language if you haven’t already.

There are a number of different programming languages that get used in machine learning and the best one will depend on what you intend to do.

With that being said, the most popular machine learning programming language is Python and I would recommend that you start out by learning Python. The reason for this is that most machine learning resources use Python, it is an easier machine language to learn and it has a wide range of uses. The course that I would recommend that you use to learn Python would be this one.

Once you have learned how to program in Python it would be worthwhile for you to learn how to do data analysis in Python. This is because it will be necessary for you to know how to massage the data so that it is ready to be used with the machine learning algorithms. You can watch this Youtube series to see how.

Another popular language used in machine learning is R which is a programming language that is mainly used in statistics. It has a number of built-in libraries that allow you to quickly implement the machine learning algorithms. However, so does Python and Python has a wider range of uses.

Javascript is also a programming language that you might want to consider. It is a programming language designed for the web and it would be a useful language to know if you want to make a web-based AI solution.

You can watch the video below to see more about programming languages used in machine learning.

Take a course on deep learning

Once you have learned the basics of machine learning and how to program in Python it would be worthwhile for you to learn about deep learning. This is a subset of machine learning algorithms that perform very well when they are given a lot of data.

The huge spike in data that companies have been receiving, in recent years, along with improvements in computational power has resulted in deep learning algorithms becoming very popular.

The course that I would recommend to learn deep learning would be this one.

Take a practical machine learning course

Once you have learned how to program in Python and what the machine learning algorithms are it would be worthwhile to take a more practical machine learning course that will show you how to implement the machine learning algorithms.

I would recommend this book the most since it will show you how to get the most out of the machine learning algorithms in Python. It is also now in the second edition and the first edition was very popular. If you do not want to buy the book then this Youtube series is also good.

Start programming machine learning yourself

At this point, you will have enough knowledge of machine learning to implement the machine learning algorithms yourself on your own datasets.

You can do this by acquiring your own data to work on or you can compete in competitions on websites such as Kaggle.com.

You’ll likely find that, when you start applying machine learning yourself, you will find gaps in your knowledge. This will help you to learn more effectively since you will be able to hone in on the areas that you are weak on.

Now, you will be able to program in machine learning and you can stop here if you just want to be able to implement the machine learning algorithms yourself.

Learn the mathematics used in machine learning

If you want to learn the mathematics that goes into machine learning then it will be necessary for you to learn calculus, linear algebra and probability.

The courses that I would recommend would be these ones:

Calculus (MIT)

Linear algebra (The University of Texas at Austin) I would also recommend this Youtube series

Probability (MIT)

Take a more advanced machine learning course

Once you have learned the mathematics then you could either take a more advanced course on machine learning or you could read a more mathematical machine learning book.

One option would be to read the book Elements of Statistical Learning (second edition) or you could take the machine learning course taught by MIT on edX that you can find here.

Consider taking a paid course

If you want to learn how to program in machine learning in a more structured way that takes you through the whole process then it will be necessary for you to take a paid course instead.

The paid course that I would recommend would be this sequence on Dataquest which will teach you everything that you needing to know to program in machine learning including the mathematics and programming in Python.

You can watch a review of Dataquest in the video below.

How long it will take you to program in machine learning

The amount of time that it will take you will depend largely on what you already know. If you already know how to program in a programming language such as python then it will only be necessary for you to take an introductory machine learning course and then to start applying the machine learning algorithms to your own datasets. You could start doing this after only having spent about 60 hours learning what the machine learning algorithms are and how to apply them.

However, you will not have a strong understanding of the mathematics that goes into the algorithms and you would not likely be fully aware of how to optimize the algorithms. To fully learn those things will likely take you a lot longer.

If you are starting from a point of not knowing any programming at all or any of the mathematics then it will take you longer to learn how to implement the machine learning algorithms and even longer to learn the mathematics that goes into them.