I get daily emails asking the question:
How do I get started in machine learning?
This post provides my quick answer. Here is my long answer.
So here is how to get started in machine learning, the quick version.
Practice Creating Predictive Models
You’re interested in machine learning but you’re not sure of the specific outcome you’re looking for.
- Maybe you’re interested in learning more about machine learning algorithms.
- Maybe you’re interested in creating predictions.
- Maybe you’re interested in solving complex problems.
- Maybe you’re interested in creating smarter software.
- Maybe you’re even interested in becoming a data scientist.
I have a suggestion…
Given a dataset, learn how to create accurate models, reliably.
- You will learn about the types and behaviours of machine learning algorithms.
- You can use the resulting predictions directly.
- You can build the skills to be able to solve your complex problems.
- You can use the models in your software.
- You can use the models in competitions, like those on Kaggle.
- You can use the results to demonstrate your skills at applied machine learning.
Here’s What To Do, Step-by-Step
You are going to be told to learn the math, read the textbooks and study theory.
Maybe that path is good for academics. I call this approach the bottom-up approach to getting started in machine learning.
This is not the only path. There are other ways.
The Top-Down Approach To Getting Started in Machine Learning
Here are the steps to get started:
- Believe. Know that you can learn machine learning by practicing working through problems (top-down) rather than studying theory (bottom-up).
- Pick a Process. Select a systematic process for working through a machine learning problem from beginning to end that you can use to reliably get a good result on any problem you work on.
- Pick a Tool. Select a tool or platform that you can use to actually work through problems and map it onto your chosen systematic process.
- Pick a Dataset. Select datasets to work on and practice the process. Ideally select properties of problems that you want to practice and find well understood datasets that have those traits on which to practice.
- Build a Portfolio. Write up your results and learnings in semi-formal work products (blog posts, presentations, tech reports) and share them publicly to demonstrate your growing machine learning skills and capabilities and engage like minded practitioners.

A better approach to learning machine learning that starts with working machine learning problems end-to-end.
Once you settle on a process and tool, repeat step 4 and build up your portfolio in step 5.
Here is Specifically What You Can Do
Good process but not specific enough for you?
Let’s get more specific.
- Believe. Acknowledge that you have limiting beliefs that are holding you back.
- Process. Use my process. Use this checklist for working through classification problems.
- Tool. Use WEKA. It provides a large number of algorithms and a graphical user interface and does not require any programming. Here is a tutorial for creating your first classifier.
- Dataset. Select datasets from the UCI Machine Learning Repository. This post will help you select datasets by traits. Start with the Iris flower dataset.
- Portfolio. Checkout this post that explains how to build your machine learning portfolio.
Action Step
There are a lot of reasons to not get started in machine learning.
I don’t have the math. I can’t program. So on and on.
If you want to get started in machine learning. Get started. Stop getting ready to start!
If you want to dive deeper into how I think you should get started in machine learning, read my post titled “Machine Learning for Programmers“. It goes into a lot more detail.
Do you have a question? A doubt? Leave a comment.
A very good start for any one who wants to starting learning ML.
Thanks.
Thanks djamel.
Thanks for creating this site
You’re very welcome.
Great post! I already started today learning ML and very excited about it. Thanks
Thanks Pablo, good luck!
Thanks Jason. This is exactly what I am looking for. Great posts.
Great Post Really.!! nicely organized and explained up to the point.
Thanks Harshil.
Thanks, experience based wise advices.
Thanks, the most clarifying website regarding the ML learning process.
You’re very welcome.
I think this is going to be a very inspirational site. Thanks Jason! Just being told the term “limiting beliefs” and understanding the individuals role in holding themselves back is an important thing to take form this article 🙂
I’m glad you’re finding it useful Jim.
Hi Jason, My my name is Leandro and I’m from Brazil. In my case, I believe the best aproach to learn is based on practice project with concepts detailed. Do you have some material based on python that can fit with that?
Thanks and Regards,
Leandro
Yes, start here Leandro:
http://machinelearningmastery.com/start-here/#python
Thanks, making ML learning process easy.
You’re welcome, I’m glad the post helped.
Thanks Jason, very good info to start the ML
I hope it helps Ram, hang in there!
how do your blog tutorials are distributed ? I want to learn serially . Will u please help me with this ?
You can read all of the posts online in an ad hoc way for free.
You can purchase my books to get a systematic coverage of a specific topic:
http://machinelearningmastery.com/products
I hope that helps.
Dear Dr. Jason,
Thanks for your material on ML. IT does help a lot to beginners in the field like me.
I wanted to know if we can go ahead and implement the model in a hardware platform once the model is validated.
What kind of hardware platforms can be used like FPGA etc.
Thanks
Sorry, hardware implementations are not my area of expertise. I cannot give you good advice.
Hello Jason, you are so kind and generous in motivating people to understand machine learning. Thanks a lot
Thanks Jyoti.
how machine learning algorithms can be profiled using Python.
Algorithm profiling
Good question, sorry this is not something I have worked on.
Thank you very much for providing nice information about Machine Learning.
You’re welcome, I’m glad it helped!
Is it really true that I do not need advanced math or coding experience to do machine learning? I have a PhD in social science and am interested in ML. I am learning R and have a fairly good background in stats.
Yes. I have worked with many developers with an undergrad doing more “useful” ml than most kaggle competitions – as in, impacting the business.
Thanks. Do you have any suggestions? Do I continue in R and work in Python? I really don’t have a preference.I was able to do your ML intro with R using the iris dataset. But I cannot seem to do with a dataset I have downloaded.
Python skills are in great demand:
http://machinelearningmastery.com/python-growing-platform-applied-machine-learning/
i am interested to learn machine learning. can you suggest me some books
You can get started here:
https://machinelearningmastery.com/start-here/#getstarted
Hi Jason, I’m an agronomist, I’m studying R, I’m very interested in Machine Learning, so it’s very nice from you to want to help people in this way. Thank you very much.
You’re welcome, I hope the post helps.
Do any body thinks there are any other teachers who can give better lectures or learning better than you?I guess not bcoz I’ve been in this area not quite long but one of the best of the best teacher I’ve ever seen in given details is you.
Keep it up Dr.
You’re very kind.
Jason – Do you have any video lessons or is it mostly blogs and books?
This is a common question that I answer here:
https://machinelearningmastery.com/faq/single-faq/do-you-have-videos
A very good start for any one who wants to starting learning ML.
Thanks.
Hi!
I’m your Linked in friend.
Glad to know you and your posts.
I would follow your steps, Top Down flow.
Thanks.
hey Jason. Im a new subscriber, but i am extremely impressed with the fantastic materials you post.
As a seniour computer engineering student, i have some background in math and programming. So what book do you recommed as a guide to learn machine learning, that’s suitable for absolute beginners like myself.
I recommend starting with an area that you are most excited by or an area that you need help with and can apply immediately.
Perhaps try some of the free tutorials first, organized by topic here:
https://machinelearningmastery.com/start-here/