5 Beginner Friendly Steps to Learn Machine Learning and Data Science with Python
By: Daniel Bourke
Tags: Machine Learning, Data Science, Towards Data Science, Coding, Learning To Code

Two years ago, I started learning machine learning online on my own. I shared my journey through YouTube and my blog. I had no idea what I was doing. I’d never coded before but decided I wanted to learn machine learning.

When people find my work, they sometimes reach out and ask questions. I don’t have all the answers but I reply to as many as I can. The most common question I get is “where do I start?” The next most common question is “how much math do I need to know?”

I replied to a handful of these questions this morning.

Someone told me they’d started learning Python and wanted to get into machine learning but didn’t know what to do next.

I’ve learned Python, what should I do next?

I put together a couple of steps in the reply and I’m copying them here. You can consider them a rough outline to go from not knowing how to code to being a machine learning practitioner.

My style of learning is code first. Get code running first and learn the theory, math, statistics and probability side of things when you need to, not before.

Remember, if you’re starting to learn machine learning, it can be daunting. There’s a lot. Take your time. Bookmark this article so you can refer to it as you go.

I’m biased towards using Python because that’s what I started with and continue to use. You could use something else but these steps will be for Python.

1. Learn Python, data science tools and machine learning concepts

The email said they’d already done some Python. But this step is for someone who’s completely new as well. Spend a few months learning Python code at the same time as different machine learning concepts. You’ll need them both.

Whilst learning Python code, practice using data science tools such as Jupyter and Anaconda. Spend a few hours tinkering with them, what they’re for and why you should use them.

Resources for learning

2. Learn data analysis, manipulation & visualization with Pandas, NumPy Matplotlib

Once you’ve got some Python skills, you’ll want to learn how to work with and manipulate data.

To do so, you should get familiar with pandas, NumPy and Matplotlib.

pandas will help you work with dataframes, these are tables of information like you would see in an Excel file. Think rows and columns. This kind of data is called structured data.

NumPy will help you perform numerical operations on your data. Machine learning turns everything you can think of into numbers and then finds the patterns in those numbers.

Matplotlib will help you make graphs and visualizations of your data. Understanding a pile of numbers in a table can be hard for humans. We much prefer seeing a graph with a line going through it. Making visualizations is a big part of communicating your findings.

Resources for learning

3. Learn machine learning with scikit-learn

Now you’ve got skills to manipulate and visualize data, it’s time to find patterns in it.

scikit-learn is a Python library with many helpful machine learning algorithms built-in ready for you to use.

It also features many other helpful functions to figure out how well your learning algorithm learned.

Focus on learning what kind of machine learning problems there are, such as, classification and regression, and what kind of algorithms are best for those. Don’t about understanding each algorithm from scratch yet, learn how to apply them first.

Resources for learning

4. Learn deep learning neural networks

Deep learning and neural networks work best on data without much structure.

Dataframes have structure, images, videos, audio files and natural language text have structure but not as much.

Tidbit: For most cases, you’ll want to use an ensemble of decision trees (Random Forests or an algorithm like XGBoost) for structured data and you’ll want to use deep learning or transfer learning (taking a pre-trained neural network and using it on your problem) for unstructured data.

You could start a note with little tidbits like this for yourself and collect them as you go.

Resources for learning

deeplearning.ai by Andrew Ng on Coursera — deep learning taught by one of the best in business. fast.ai deep learning courses by Jeremy Howard — a hands-on approach to deep learning taught by one of the industries best practitioners.

5. Extra curriculum & books

Along the way, it would be ideal if you practised what you were learning with small projects of your own. These don’t have to be elaborate world-changing things but something you can say “I’ve done this with X”. And then share your work via Github or a blog post. Github is used to showcase your code, a blog post is used to show how you can communicate your work. You should aim to release one of each for every project.

The best way to apply for a job is to have already done the things it requires. Sharing your work is a great way to showcase to a potential future employer what you’re capable of.

After you’re familiar using some of the different frameworks for machine learning and deep learning, you could try to cement your knowledge by building them from scratch. You won’t always have to do this in production or in a machine learning role but knowing how things work from the inside will help you build upon your own work.

Resources for learning

How long for each step?

You could spend 6-months or more on each. Don’t rush. Learning new things takes time. The main skill you are building as a data scientist or machine learning engineer is how to ask good questions of data then using your tools to try and find answers.

Some days you’ll feel like you’re learning nothing. Even going backwards. Ignore it. Don’t compare your progress day to day. Compare your progress year on year.

Where can I learn these skills?

I’ve listed some resources above, they’re all available online and most of them are free but there are plenty more.

DataCamp is a great place to do most of these. Otherwise, my Machine Learning and Artificial Intelligence resources database contains a good archive of free and paid learning materials.

Remember, part of being a data scientist or machine learning engineer is solving problems. Treat your first assignment as finding out more about each of the steps here and creating your own curriculum to help you learn them.

If you want to know what an example self-lead curriculum for machine learning looks like, check out my Self-Created AI Masters Degree. It’s what I used to go from zero coding to being a machine learning engineer in 9-months. It’s not perfect but it’s mine, that’s why it worked.

What about statistics? What about math? What about probability?

You will learn these things along the way. Start with code first. Get things running. Trying to learn all of the statistics, all of the math, all of the probability before running your code is like trying to boil the ocean. It will hold you back.

None of the statistics, math and probability matter if your code doesn’t run. Get something working, and then use your research skills to find out if it’s correct.

What about certifications?

Certifications are nice but you’re not after them. You’re after skills.

Don’t make the mistake I did and think more certifications equals more skills. They don’t.

Build foundational knowledge through courses and resources like the above and then build specific knowledge (knowledge which can’t be taught) through your own projects.