Beginning Machine Learning – A few Resources [Subjective]

I’ve been meaning to write this post for a while now, because many people following the scikit-learn video tutorials and the ML group are asking for direction, as in resources for those who are just starting out.

So, I decided to put up a short and subjective list with some of the resources I’d recommend for this purpose. I’ve used some of these resources when I started out with ML. Practically, there are unlimited free resources online. You just have to search, pick something, and start putting in the work, which is probably one of the most important aspects of learning and developing any skill.

Since most of these resources involve knowledge of programming (especially Python), I am assuming you have decent skills. If you don’t, I’d suggest learning to program first. I’ll write a post about that in the future, but until then, you could start, hands-on, with the free Sololearn platform.

The following resources include, but are not limited to books, courses, lectures, posts, and Jupyter notebooks, just to name a few.

In my opinion, skill development with more than one type of resource can be fruitful. Spreading yourself too thin by trying to learn from too many places at once could be detrimental though. To illustrate, here’s what I think of a potentially good approach to study ML in any given day (and I’d try to do skill development 6-7 days a week, for several hours each day):

– 1-2 hours reading from a programming book and coding along
– 1 hour watching a lecture, or a talk, or reading a research paper
– 30 minutes to 1 hour working through a course
– optional: reading 1-2 posts.

This would be a very intensive approach and it may lead to good results. These results are dependent of good sleep – in terms of quality (at night, at the right hours) and quantity (7-8 hours consistently).

Now, the short-list…

Starter Resources

  1. A few Courses

1.1. Machine Learning with Python – From

I put this on the top of the list because it not only goes through the basics of ML such as supervised vs. unsupervised learning, types of algorithms and popular models, but it also provides LABs, which are Jupyter notebooks where you practice what you learned during the video lectures. If you pass all weekly quizes and the final exam, you’ll obtain a free course certificate. I took this course a while ago.

1.2. Intro to Machine Learning – From Udacity

Taught by Sebastian Thrun and Katie Malone, this is a ~10-week, self-paced, very interactive course. The videos are very short, but engaging; there are more than 400 videos that you have to go through. I specifically like this one because it is very hands-on and engaging, so it requires your active input. I enjoyed going through the Enron dataset.

1.3. Machine Learning – From Udacity

Taught by Michael Littman, Charles Isbell, and Pushkar Kolhe, this is a ~4-month, self-paced course, offered as CS7641 at Georgia Tech and it’s part of their Online Masters Degree.

1.4. Principles of Machine Learning – From EDX, part of a Microsoft Program

Taught by Dr. Steve Elston and Cynthia Rudin. It’s a 6-week, intermediate level course.

1.5. Machine Learning Crash Course – from Berkeley

A 3-part series going through some of the most important concepts of ML. The accompanying graphics are ‘stellar’ and aid the learning process tremendously.

Of course, there are many more ML courses on these online learning platforms and on other platforms as well (do a search with your preferred search engine).

If you’re ML savvy, you may be wondering why I am not mentioning Ng’s course. It’s not that I don’t recommend it; on the contrary, I do. But I’d suggest going through it only after you have a solid knowledge of the basics.

Additionally, here are the materials from Stanford and MIT‘s two courses on machine learning. Some video lectures can be found in their Youtube playlists. Other big universities provide their courses on the open on Youtube or via other video sharing platforms. Find one or two and go through them diligently.

  1. Books

2.1. Python for Data Analysis – Wes Mckiney

– to lay the foundation of working with ML related tools and libraries

2.2. Python Machine Learning – Sebastian Raschka

– reference book.

2.3. Introduction to Machine Learning with Python – Andreas Muller and Sarah Guido

– I’ve been using this book as inspiration material in my ML Youtube video series.

Going through these books hands-on (coding along) is critical. Each of them have their github repository of Jupyter notebooks, which makes it even easier to get your hands on the code.

Strong ML skills imply solid knowledge of the mathematics, statistics and probability theory behind the algorithms, atop of the programming skills. Once you get the conceptualized knowledge of ML, you should be studying the complexities of it.

Here’s a list of free books and resources to help you along. It is relevant to ML and data mining, deep learning, natural language processing, neural networks, linear algebra (!!!), and probability and statistics (!!!).

  1. Videos and Playlists

3.1. Luis Serrano – A friendly Introduction to Machine Learning

– one of the most well explained video tutorials that I went through. No wonder Luis teaches with Udacity. His other videos on neural networks bring the same level of quality!

3.2. Roshan – Machine Learning – Video Series

– from setting up the environment to hands-on. Notebooks are also available.

3.3. Machine Learning with Scikit-Learn (Scipy 2016) – Part 1 and Part 2

– taught, hands-on, by Muller and Raschka. Notebooks are available in the description of the videos. Similar videos by these authors are available in the ‘recommended’ section (on the right of the video).

At this point I realized I’ve been using the word ‘hands-on’ way too much. But that’s okay. I guess you get the point.

3.4. Machine Learning with Python – Sentdex Playlist

– Sentdex needs no introduction. His current ML playlist consists of 72 videos.

3.5. Machine Learning with Scikit-Learn – Cristi Vlad Playlist

This is my own playlist. It currently has 27 videos and I’m posting new ones every few days. I’m working with scikit-learn on the cancer dataset and I explore different ML algorithms and models.

3.6. Machine Learning APIs by Example – Google Developers

– presented at the 2017 Google I/O Conference.

3.7. Practical Introduction to Machine Learning – Same Hames

– tutorial from 2016 PyCon Australia.

3.8. Machine Learning Recipes – with Josh Gordon

– from Google Developers.

To find similar channels you can search for anything related to ‘pycon’, ‘pydata’, ‘enthought python’, etc. I also remind you that many top universities and companies posts their courses, lectures, and talks on their video channels. Look them up.

  1. Others

4.1. Machine Learning 101 – from BigML

“In this page you will find a set of useful articles, videos and blog posts from independent experts around the world that will gently introduce you to the basic concepts and techniques of Machine Learning.”

4.2. Learning Machine Learning – EliteDataScience

4.3. Top-down learning path: Machine Learning for Software Engineers

– a collection of resources from a self-taught software engineer, Nam Vu, who purposed to study roughly 4 hours a night.

4.4. Machine Learning Mastery – by Dr. Jason Brownlee

Concluding Thoughts

To reiterate, there is an unlimited number of free and paid resources that you can learn from. To try to include too many is futile and could be counterproductive. Here I only presented a few personal picks and I suggested ways to search for others if these do not appeal to you.

Remember, to be successful in skill development, I’d recommend an eclectic approach by learning and practicing from a combination of different types of resources at the same time (just a few) for a couple of hours everyday.

Learning from courses, hands-on lectures, talks, and presentations, books (hands-on) and Jupyter notebooks is a very demanding and intensive approach that could lead to good results if you are consistent. Good sleep is crucial for skill development. Enjoy the ride!

Image: here.

Get on my list of friends
More about my book Stress and Adaptation
More about my book Persistent Fat Loss
More about my book Ketone Power
More about my book Periodic Fasting

Related posts:



3 Responses to Beginning Machine Learning – A few Resources [Subjective]

  1. PETER BRETT says:

    Those look like great resources. I believe that Python has good linear algebra libraries, so it should work well as a machine learning language. My (limited) expeditions into machine learning so far have used Octave, which seems like a reasonably easy way to prototype stuff. Python is probably a good way to get beyond the prototype, though I’d be interested in views on how well it scales. I guess you can implement map reduce or spark in any language, though I’m not aware of an existing implementation in Python.

    • Chris Chris says:

      I believe Andrew Ng uses Octave a lot in the coursera ML course. I’ve only worked with it a little bit. I’d say Python (and to some extent R) is the way to go for machine learning and deep learning projects. It scales well, imo.

  2. shivlu jain says:

    I believe along with ML, people should also understand the basics of math. It the most important stuff to get better understanding of algorithms.

Leave a Reply

Your email address will not be published. Required fields are marked *