5 Beginner Friendly Steps to Learn Machine Learning

Daniel Bourke maps a five-step path to machine learning: Python basics, data tools like Pandas, scikit-learn algorithms, deep learning, then projects and reading. He recommends spending about six months per step and learning code first, theory second.
Chapters
Hello everyone, machine learning engineer Daniel Bourke here. Now, someone sent me an email the other day saying, "I've learned some Python and I'd like to actually learn machine learning, but I'm not sure on where to go to next." It was a good question, right? I had the same question about 2 years ago when I first started learning machine learning. So I replied to the email with some steps, the steps we're going to go through in this video, but don't worry, we're gonna start from scratch in this video. So even if you haven't learned Python, if you're a complete beginner, steps in this video will be for you. But even if you do have some experience with machine learning, keep watching because you'll probably still gain some value out of this video. And if there's anything that I've missed, you can leave a comment below to help others. Before we get into specifics, let me explain to you my style of learning. Now, I'm a very practical person, right, which means I like to get hands-on before I— to learn anything well. And now, machine learning is one of those fields where you don't need to know the theory, like the probability, statistics, and mathematics really in depth until you do. So if you want to get started learning, I have a bias towards learning code first because it's a practical approach, right? You can write code, you can see it running, you can learn major machine learning concepts as you're building them. And then when you hit a roadblock, then that's when you can go back to the theory and go, okay, I need to understand this, the background behind this code to go further. But to start off with, I always encourage people to use code first because it's practical. You can learn the major machine learning concepts as you go. So that's what these steps will be dedicated towards— learning machine learning with Python code. Now for all the resources I mention in this video, there'll be links in the description, so be sure to check it out there. Don't worry too much if you don't pay attention through it, everything will be below. Step 1: Learn Python, data science tools, and machine learning concepts. Spend a few months learning foundation Python, right? Just general Python, because that's the code language that you're going to be using for machine learning. And at the same time, start to look into different machine learning concepts, because as you're learning Python code, it'll be good to be aware of, right? So you're learning it in this, in the space of understanding machine learning. Don't worry too much if you're not implementing machine learning at the start. What you're trying to do is just get Get used to typing Python code. Now while you're learning the code, it'd be great if at the same time, right, you're doing all these 3 steps at once: machine learning concepts, Python, and data science tools. Now the only 2 tools you need to be aware of are Jupyter Notebooks and Anaconda to begin with. Now where can you learn this? Machine learning concepts, you can use the Elements of AI course, right? It's a free course. It'll go through an overview of all the major concepts in machine learning and artificial intelligence. For Python code, you could use the Coursera Python for Everybody specialisation or the Learn Python video on FreeCodeCamp's YouTube. And for Jupyter and Anaconda, Corey Shafer has some amazing tutorials that you can go through and watch them, an overview of each in, in one video. Step 2: Learn data manipulation, analysis, and visualisation with Pandas, Matplotlib and NumPy. Alright, so once you've got some fundamental skills with Python, you'll be able to start to use specialized data science and machine learning libraries. And the 3 foundation ones to manipulate and work with data, because after all machine learning is getting insights out of data, are Pandas, NumPy and Matplotlib. Pandas is what you use to work with structured data. Imagine like an Excel spreadsheet, right? Rows and columns all filled with information. Pandas will help you manipulate that, change its, change its style, get rid of data that you don't want, fill data that you might be missing, etc., etc. NumPy stands for Numerical Python. It'll help you do numerical operations on those rows and columns if you need to. And Matplotlib stands for Math Plotting Library. Now, a big table of information, right, with all numbers through it, that's kind of hard for humans to understand. But we definitely understand a line going through a graph, so you can look at it and see, see things visually. We're very visual people, visual creatures. Anyway, that's, that's biology. Learning these three together will help set up a foundation for what's to come. Where can you learn these? Well, Coursera's Data Science— no, Applied Data Science Specialization with Python is a great start. You could do the first three parts of the specialization to learn these three things. Otherwise, there's a great Pandas tutorial by Code Basics. For NumPy, you could use FreeCodeCamp's video on NumPy. And for matplotlib, Sentdex has a great series going through all the most useful functions of matplotlib. Step 3: Learn machine learning with scikit-learn. Finally! Why did it take up to step 3 to start actually doing some machine learning? Because it's important to get the fundamentals right. If you have a good foundation— I'm all about getting into things as soon as possible, but for something like machine learning, you really do need a good set of foundations. Foundations to build upon. That's why we went through the first two steps first. Now, scikit-learn is a great library. It's done in Python as well. That's why we're learning Python, which has some incredibly useful machine learning algorithms built in. Now, what your focus will be with scikit-learn is not to learn the algorithms from scratch. It will be to learn how to apply the pre-built versions of them to different kinds of machine learning problems. So if you have a classification problem, what algorithm in scikit-learn should you apply to it? If you have a regression problem, what algorithm that's already been built for you should you apply to it? That's your goal with this step: learn how to apply pre-built machine learning algorithms to different problems. Now, to learn scikit-learn, Data School has a great playlist on YouTube. Step 4: Learn deep learning and neural networks. Okay, it's time to get deep. Deep learning, that is. Nah, I'm kidding. So deep learning works best with unstructured data. Now remember that Excel file we talked about before, which is what you use Pandas for, which is all like rows and columns? Everything's nice and neat. You might have some label columns at the top, some rows. Oh, you know, this column's the house price, you know, this column means bathrooms, etc., etc. Well, deep learning works on the type of data that you may not have everything in a, in a beautiful row and column setup, like images, like videos, like audio, where there's some structure, right, like pixel values and whatnot, but it varies pretty quickly, right, from frame to frame. This video has different sets of data. A different picture can be very different from another. One audio sequence can be a different language and a different person speaking. So, you can imagine all the different kinds of structure. So, that's what deep learning and neural networks are good for. They're kind of called representation learning. Or feature learning. What a neural network is really good at is breaking something down into lots of small little pieces of data and then combining it back up and finding the patterns in that. So to learn deep learning and neural networks, you'll want to look at Andrew Ng's deeplearning.ai specialization or the fast.ai curriculum. Step 5: Extracurriculum and books. Along the way, as you go through the steps we've mentioned before, To solidify your own knowledge and to practice your communication skills, it would be great to share what you've learned through your own projects. You could do this through the form of a blog post on your own blog or Medium and by sharing your code on GitHub. Now an example of this was, was for me when I wanted to learn exploratory data analysis. I wrote a blog post about it. I wrote an article, an in-depth article that went through a project of me entering my first Kaggle competition, the Titanic Kaggle competition. And wrote about each of the steps in exploratory data analysis, right? So going through the data, figuring out how to split into train and test set, then modeling it, then submitting code to GitHub and— sorry, submitting code to Kaggle. But I also linked in that post my code on GitHub and a video walking through the steps, and it really helped me to understand the steps in exploratory data analysis. So if you want to understand something, if you want to learn to communicate something, right, it's one thing to have have it all private in your own, your own thoughts. But until you can really explain it or share it with someone else, that's gonna, that's gonna help, help you understand something. So, that's why I've put in here as extracurriculum to really solidify your knowledge, practice using it. And if you're after books to go along with the steps above, I've listed some of my favourites in a previous video. But the two standouts that probably align most to what we've talked about are I think I've got it right here. Conveniently placed book, Python for Data Analysis by Wes McKinney. This will help most with, with step 2, right? This is using Pandas, and this is by one of the authors of Pandas, so you know it's a great book. The other one is, I don't have it, a physical copy, I have it on Kindle, is Hands-On Machine Learning with Scikit-Learn and TensorFlow by Aurélien Garonne. Now beware, at the time of recording this, I believe the second edition is on its way, so So be sure to check it out before you, you buy it or preorder it or something like that. The third book is The Mechanics of Machine Learning, which as the time of this video is also in progress, but it's by Terrence Parr and Jeremy Howard. Jeremy is the founder of fast.ai, which is one of the courses you could use to learn deep learning. It's a great book. It's very hands-on, which is, which is what I like. Where can I learn all these skills? Well, as I've mentioned, I've listed a couple of resources, or we spoke about a couple of resources through the video. All the links will be in the description, but of course there's plenty more. If you do have one you'd like to share, leave a comment below so other people can see it. I've also put everything we've talked about in a structured blog post so you have it all in one place. You can bookmark that and you can use that for later. Otherwise, if you're looking for like a one-stop shop you can get hands-on straight away, I'm a big fan of DataCamp. They have interactive code, code modules you can go through step by step. It works for some people, doesn't work for others, but that's kind of the best one-stop shop that I can think of. How long should learning all of this take? Well, the beautiful thing is that because it's all online, you can set your own pace, which is why it's important, I think, to lay out a structure, right? You could teach it— you could treat it, sorry, you could treat it as your own university degree or your own 2-year self-apprenticeship to learn machine learning. So, what that would mean is take about 6 months per step, or again, because it's online, you could go faster if you wanted to. But remember, learning anything new, especially machine learning, takes time, right? So, be patient with your results. Day to day, it'll probably seem like you're not learning anything, you're not even retaining it. You might even think, "I'm going backwards." Like, day to day progress might not be much. But don't compare yourself day to day. Compare yourself year on year or in 6-month blocks, something like that. Remember, learning anything new takes time. What about statistics? What about probability? What about math? Now, you will learn some of these along the way as you go. Get your code running first. When you hit a roadblock that your foundation skills, right, of learning code first are preventing you from moving forward, then dive into the fundamentals of what you need, the math, probability, statistics that will push you forward. Trying to learn all of the math, statistics, and probability of machine learning before you start getting into building machine learning projects is like trying to boil the ocean. What about certifications? Now, certifications are nice, but you're not after them. Some workplaces require certifications. If that's the case, look into that. You might need to take care of that. But otherwise, if they don't, share your— certify your knowledge, right? Certify your skills through your own projects, which is step 5, remember, extracurriculum. And that's it. Alright, if you're serious about learning machine learning, you can treat the steps that we've gone through in this video as a, as a rough outline. And don't forget, there's an article with, with them all in one place, so you can quickly go through them. If you need to chop and change some of them and you're like, oh, I've done this step 1 and it doesn't really suit me to go to step 2, that's fine. I've kind of put them together just as a, as a loose outline, something that I would, would have liked to have had when I first started learning machine learning. If you have any questions or think I've missed out on something, leave a comment below so that other people could see. As always, keep learning, keep creating. We'll see you in the next video. Step 1: Learn Python, Data Science 2— oh no, I got a fucking burp. 5, 4, 3, 2, 1. Beautiful. But as always, I say but a lot. Done.
More from Daniel

Small Language Models (SLMs) Are the Future: Fine-Tuning AI That Runs on Your iPhone

Introducing Sunny - A MedGemma-Powered Skin Health Tracking App (Kaggle Competition Entry)

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 4 - Comparing the results

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 3 - Running LLMs on the RTX 4090

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 2 - Formalizing the tests

Benchmarking: NVIDIA DGX Spark & NVIDIA RTX 4090 | Part 1 - Creating a series of tests

Local Multimodal RAG on the NVIDIA DGX Spark | Part 4 - Publishing our demo to Hugging Face

Local Multimodal RAG on the NVIDIA DGX Spark | Part 3 - Putting it all together


