Build A Machine Learning Portfolio
Build A Machine Learning Portfolio
Search...
Design, art and photography are examples where the work product is creative and empirical, where telling
someone you can do it is not valued the same as showing them.
In this post, I will convince you that building a machine learning portfolio has value to you, others and the
community.
You will discover what exactly a machine learning portfolio is, the types of projects that can be included and how to
make your portfolio really work for you.
Exhibit Your Machine Learning Projects
Photo by chicagogeek, some rights reserved
Focus: Each project has a well-defined purpose and end point. Small projects constrained in effort and
resources can keep velocity high.
Knowledge Base: The corpus of completed projects provide a knowledge base for you to reflect on and
leverage as you push into projects further from comfort zones.
Trajectory: There are so many shiny things to investigate, reminding yourself that you are looking for a
consistent collection projects can be used as a lever to keep you on track.
Benefits to Others
A portfolio of completed projects can be used by others as an indicator of specific skills, ability to communicate and
a demonstration of drive.
Skills: A project can demonstrate your capability with regard to a specific problem domain, tool, library
technology stack or algorithm.
Communication: A project must be understood at least in terms of its purpose and the findings. The
curation of a good portfolio requires excellent communication skills that tautologically demonstrate your ability
to communicate technical subjects well.
Motivation: Working on and completing side projects, regardless of the size of scope takes a certain level of
self-discipline. The fact that you managed to put together a portfolio is a monument to your interest in the
subject and ability to manage your time.
Engagement: A public project can elicit feedback from third-parties which may provide extensions and
improvements from which both you and the community itself can learn from.
Starting Point: A public portfolio project can provide the jumping off point from which others can learn and
build upon, perhaps for their own small project or something serious.
Case Study: a public project can provide a point of study perhaps for a unique or interesting algorithm
behavior or problem decomposition, the very source of innovation.
Hopefully, I’ve convinced you that building a machine learning portfolio has some benefits that interest you. Next,
we will look at what exactly a machine learning portfolio is.
Accessible: I advocate making the portfolio public in the form of a publicly accessible webpage or collection of
public code repositories. You want people to find, read, comment on, and use your work if possible.
Small: Each project should be small in scope in terms of effort, resources, and most importantly, your time (10-
20 hours). You’re busy and it’s hard to keep focus. See my Small Projects Methodology.
Completed: Small projects help you have finished projects. Set a modest project objective and achieve it. Like
mini-experiments, you present the findings of your successes and your failures, they are all useful learnings.
Independent: Each project should be independent so that it can be understood in isolation. This does not
mean you can’t leverage prior work, it means that the project makes sense on its own as a standalone piece of
work.
Understandable: Each project must clearly and effectively communicate it’s purpose and findings (at the very
least). Spend some time and make sure a fresh set of eyes understand what you did and why it matters.
Four types of small project ideas that may inspire you, include:
Some ideas for projects that you probably didn’t think were portfolio pieces include:
Coursework: Your clear presentation of your notes and homework for a machine learning related course (such
as a MOOC).
Book Review: Your clear presentation of your notes from reading and reviewing a machine learning book.
Software Review: Your clear presentation and worked examples for using a machine learning related software
tool or library.
Competition Participation: You’re clearly presented notes and results for participating in a machine learning
competition, such as Kaggle.
Commentary: An essay in response to a machine learning themed blog post or your detailed response to a
machine learning related question on a Q&A site like Quora, Reddit Machine Learning or CrossValidated.
Now that you know what a machine learning portfolio is and have some ideas of projects, let’s look at how to turn
up the awesome on your portfolio.
Code Repository
Consider using a public source code repository such as GitHub or BitBucket that naturally list your public projects.
These sits encourage you to provide a readme file in the root of each project that describes what the project is all
about. Use this feature to clearly describe the purpose and findings for each project. Don’t be afraid to include
images, graphs, videos and links.
Provide unambiguous instructions for downloading the project and recreating the results (if there is code or
experimentation involved). You want people to re-run your work, make it as easy as possible (i.e. type this to
download then type this to build and run it).
Curate Projects
You can slap together any old project on GitHub, but only include your best, clearest most interesting work in your
machine learning portfolio.
Curate your projects like a gallery. Choose those that best demonstrate your skills, interests and capabilities. Show
off what you can do and what you have done. These ideas of self-promotion can feed back into the projects you
might want to tackle. Be clear in your vision, where you want to be and what projects you want to tackle that will
help you get there. Own the process.
Present Findings
Spend a lot of time writing up results. Explain how they relate to the aims of the project. Explain the impact they
have in the domain or could have. List off opportunities for extensions that you would or could explore if you had
another month or year to deep dive on the project.
Create tables, graphs and any other pretty pictures that help you tell your story. Write up your findings as a blog
post. For bonus points, create a short screen cast showing how you got the results and a small power point
presentation for what that mean, put it up on YouTube. This video can be embedded in your blog post and linked to
from your project repository readme file.
Depending on the findings you have and how important they are to you (such as doing well in a Kaggle
competition), you can consider creating a technical report and uploading it to scribd and uploading your slides to
SlideShare.
Promote Your Work
You can share the details of each project as you finish it. You may be completing one per week depending on the
number of free hours you can find around study and/or work. Sharing links on social media is a good start, such as
twitter, facebook and Google+.
I would urge you to add each project (or just your best projects) as “projects” on LinkedIn. It supports the idea of
projects and you may have to create a job for them to be listed against. Consider the name of your blog, your sole
trader company or invent a relevant job and title such as “Machine Learning Mastery” (wink) or “Self Education“.
Now that we have some ideas on how to make our portfolio shine and how to get the word out, can look at some
examples of machine learning portfolios.
Like sample code in programming interviews, Machine Learning portfolios are getting to become a serious part of
hiring.
Look for examples of good (or at least filled out) machine learning portfolios. Look for people doing well in machine
learning competitions, they typically have an amazing collection of projects described on their blogs and in their
public code repositories.
Look for contributors to open source machine learning projects, they can have amazing tutorials, applications and
extensions to the software on their blogs and public code repositories.
Get started now. Dig up your projects and put them together in a story that explains your knowledge, interest or
skills in machine learning.
Over To You
Have you completed a machine learning project or do you have a portfolio of projects?
What Is Holding You Back From Your Machine Learning Goals? Work on Machine Learning Problems That Matter To You
REPLY
Ryan Herr June 10, 2014 at 1:16 am #
Any recommendations of good example portfolios? Particularly, any examples that have helped people
break in and get hired?
REPLY
Laritza August 22, 2016 at 4:03 am #
Thank you very much for this great post. I am thinking about to create an online data science portfolio and
all your suggestions about machine learning projects are an excellent start point.
REPLY
Jason Brownlee August 22, 2016 at 7:23 am #
REPLY
Sagar October 6, 2016 at 11:22 pm #
+1 Laritza.
Another wonderful well written article. Precise at point. It’s really great idea to have a ML portfolio.
REPLY
Ossama Zaiter September 11, 2019 at 6:39 am #
REPLY
Jason Brownlee September 11, 2019 at 2:26 pm #
Thanks.
REPLY
Hrishikesh Kherdekar January 25, 2017 at 4:48 pm #
Hi Jason,
Thanks for this wonderful article. Could you please show me a sample portfolio? I am new to Machine Learning.
Regards,
Hrishikesh
REPLY
Freelance Paraguay February 17, 2017 at 2:27 pm #
REPLY
Jason Brownlee February 18, 2017 at 8:33 am #
Thanks.
REPLY
Vinod Ralh March 8, 2017 at 11:10 am #
I hadn’t thought seriously about doing this.. but its a great idea… even for myself to ‘reinforce’ my own
learnings.
REPLY
Jason Brownlee March 9, 2017 at 9:52 am #
I could not agree more Vinod! Let me know how you go.
REPLY
Karunakaran April 30, 2017 at 4:00 pm #
This is great.
REPLY
Jason Brownlee May 1, 2017 at 5:55 am #
REPLY
Porimol Chandro May 15, 2017 at 5:04 pm #
Hi Jason,
Thanks for this wonderful article. I’m newcomer in the ML technology. Everyday I’m studying on that field and
learning new term, technology, algorithms.
Though, I’m new for that I start a small project on ML. I worked to build a Gender Predicting superviesed machine
learning model. Here is the github repository link:
https://github.com/porimol/gender-predictor
REPLY
Jason Brownlee May 16, 2017 at 8:38 am #
REPLY
shravankumar June 3, 2017 at 10:34 pm #
Hey Jason,
Thank you so much for such a wonderful blog post. You inspired me a lot with all your blog posts and news letters,
you made the machine learning so easy for me.
I used to write blog posts to help people to learn from my experiences here:
shravankumar147.wordpress.com
Here is my github page, where a lot of projects are explored and open sourced:
https://github.com/shravankumar147
REPLY
Jason Brownlee June 4, 2017 at 7:52 am #
REPLY
Jadhav datta July 20, 2017 at 1:40 am #
Son ,I am mechanical student and beginner so ,I have no idea what is machine learning .Can you tell me
what kind of application of machine learning.
REPLY
Jason Brownlee July 20, 2017 at 6:21 am #
REPLY
MohammadEhtasham Billah February 1, 2018 at 4:50 am #
I am working on a project.I am trying to predict the credit card holders who are going to be default next
month.So far, I have not found any satisfactory outcome.The precision measures for different algorithms are as follow
accuracy :82-84%
precision : 66-70%
recall:35-37%
F1 score:42-47%
The accuracy is higher because most of the customers are not going to be default in the next month.But when it
comes to predicting customers that are going to be default the result is very poor (as you can see in the recall).So far,
I have applied: KNN, SVM, kernel SVM, Decision tree.I have already tried to fine tune the hyperparameter for these
models.The results did not improve much.So, I am going to apply random forest, naive Bayes and XGBOOST and
some ensemble methods as well.Do you think my findings worth publishing at github?
Thank you
REPLY
Jason Brownlee February 1, 2018 at 7:26 am #
REPLY
Mohammad Ehtasham Billah February 5, 2018 at 5:42 am #
THANK YOU.
REPLY
Shueb February 26, 2018 at 8:16 pm #
Really thanks Jason, the given steps has cleared my understanding towards Ml and how it will used in
application.
REPLY
Jason Brownlee February 27, 2018 at 6:25 am #
REPLY
Mars March 29, 2018 at 7:44 am #
i am working for a company as electrical engineer and starting working on some self- proposed internal ML projects,
my question is the following: how can i insert these projects in my ML portofolio since i cannot make them public??
REPLY
Jason Brownlee March 29, 2018 at 3:15 pm #
Good question. Perhaps you can summarize the methods and findings without giving away private
details.
REPLY
mars April 3, 2018 at 11:46 pm #
REPLY
Jesús Martínez April 12, 2018 at 12:05 am #
Having a portfolio, even if you’re not into machine learning, is absolutely necessary. The great thing about
portfolios is that they showcase most of the skills a potential employee love in an employee: Drive, passion, focus,
autonomy, technical knowledge! In my experience, having projects in GitHub is fine, but developing end to end
applications that can be used as a small product (maybe a webpage or a simple mobile app) works best!
REPLY
Jason Brownlee April 12, 2018 at 8:46 am #
A completely agree!
REPLY
Daniel April 27, 2018 at 3:20 am #
Jason, thanks for providing a roadmap for us newbies. Do you have a recommendation in terms of public data
repositories for industrials and governments which we can build projects from?
REPLY
Jason Brownlee April 27, 2018 at 6:08 am #
REPLY
Mamta May 30, 2018 at 5:47 pm #
REPLY
Jason Brownlee May 31, 2018 at 6:13 am #
REPLY
Maker July 10, 2018 at 7:08 am #
REPLY
Jason Brownlee July 10, 2018 at 2:22 pm #
You’re welcome.
REPLY
Jay Nankani October 31, 2018 at 4:44 pm #
REPLY
Jason Brownlee November 1, 2018 at 6:02 am #
Nice work.
REPLY
Momil Ijaz November 19, 2018 at 3:52 pm #
Should i go for building a portofolio out of the small beginner level projects i am doing while following
Andrew’s coursera’s MAchine learning intro.
REPLY
Jason Brownlee November 20, 2018 at 6:32 am #
Sure!
REPLY
Martin November 19, 2018 at 7:39 pm #
Hi Jason,
Thank you very much for this and all other posts, you have helped me a lot.
I just finished my first Machine Learning report, if you are intrested you can find it at https://github.com/Aillie/Auto-
MPG-MAchine-Learning
Sincerely Martin
REPLY
Jason Brownlee November 20, 2018 at 6:34 am #
REPLY
danz December 12, 2018 at 9:10 pm #
Hi Jason,
Excellent advice!
I especially like the advice of starting, even with a modest project.
Also, I like the idea of having a portfolio on GitHub that can be shown to an employer.
A portfolio would help build up the knowledge in a solid way fore sure.
Before this post I also had in mind something of this kind, but I considered to dog more deeply in documentation
before…(this is how I got to Attention networks, a subject that is clearly too much for me at the moment)
But now I am determined to start building a portfolio, even a modest one in the beginning, and buying your “Machine
Learning Mastery With Python” as a first inspiration source.
REPLY
Jason Brownlee December 13, 2018 at 7:52 am #
REPLY
Mohd Sakib January 23, 2019 at 3:33 am #
REPLY
Luzuko March 8, 2019 at 6:38 pm #
REPLY
Jason Brownlee March 9, 2019 at 6:23 am #
Thanks.
REPLY
Muhammad iqbal April 27, 2019 at 11:29 am #
etc
REPLY
Jason Brownlee April 28, 2019 at 6:53 am #
REPLY
Mohammad Iqbal June 6, 2019 at 5:02 am #
“I would urge you to add each project (or just your best projects) as “projects” on LinkedIn. It supports the idea of
projects and you may have to create a job for them to be listed against. Consider the name of your blog, your sole
trader company or invent a relevant job and title such as “Machine Learning Mastery” (wink) or “Self Education“.”
Are you suggesting we complete projects, then give ourselves “Machine Learning Engineer” job title with our own
company as the employer, because this seems like a good idea.
REPLY
Jason Brownlee June 6, 2019 at 6:38 am #
Thanks so much, @Jason B, for all the great posts you have shared with the community. Very pragmatic,
crisp and succinct.
REPLY
Jason Brownlee August 5, 2019 at 6:41 am #
REPLY
Franck Tchouanga October 23, 2019 at 9:52 pm #
fully working algorithm for conversion from png to mnist dataset check at this repository
https://github.com/Tchouanga12/png-to-mnist-convertion-algorithm
REPLY
Jason Brownlee October 24, 2019 at 5:38 am #
REPLY
Franck Tchouanga October 24, 2019 at 6:22 am #
welcome sir
REPLY
Atul January 30, 2020 at 5:52 pm #
Actually sir i’m learning in third year of information technology and I have submit main project to final year so
please give any suggestion for project on machine learning ,
if you have to any project on machine learning in python so I m ready for getting this…..Thaaankssssss…!
REPLY
Jason Brownlee January 31, 2020 at 7:41 am #
REPLY
Nishant DWIVEDI April 7, 2020 at 3:00 am #
Hi Jason.. How should i start into ML.. Its almost a year now i have been finding a way to get into ML…
Regards,
Nishant Dwivedi
REPLY
Jason Brownlee April 7, 2020 at 5:56 am #
Start here:
https://machinelearningmastery.com/start-here/#getstarted
REPLY
bala September 12, 2020 at 4:04 pm #
REPLY
Jason Brownlee September 13, 2020 at 5:58 am #
Well done.
REPLY
Sylvanus January 27, 2021 at 11:08 pm #
Thanks Jason for your comprehensive article. i can’t wait to start building my blog.
REPLY
Jason Brownlee January 28, 2021 at 5:57 am #
You’re welcome.
REPLY
JC Chouinard March 4, 2021 at 4:22 pm #
I found that writing a blog about your learnings is the best way to learn fast. Write for yourself, and don’t
forget a single step. That way, if no one uses your blog, at least you will. But also, committing publicly to blog on
Machine Learning (or whatever subject, mine is SEO) will force you to produce higher quality content, and dig deeper
into your own understanding of a subject. Learning way faster this way.
REPLY
Jason Brownlee March 5, 2021 at 5:30 am #
Leave a Reply
Name (required)
SUBMIT COMMENT
Welcome!
I'm Jason Brownlee PhD
and I help developers get results with machine learning.
Read more