Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

 Navigation

Click to Take the FREE Crash-Course

Search... 

Build a Machine Learning Portfolio


by Jason Brownlee on September 27, 2016 in Start Machine Learning  67

Share Tweet Share

Complete Small Focused Projects and Demonstrate Your Skills


A portfolio is typically used by designers and artists to show examples of prior work to prospective clients and
employers.

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

Benefits of a Machine Learning Portfolio


If you are just starting out as a beginner in machine learning or you are a hardened veteran, a machine learning
portfolio can keep you on track and demonstrate your skills. Creating a machine learning portfolio is a valuable
exercise for you and for others.

Benefits for You


Building up a collection of completed machine learning projects can keep you focused, motivated and be leveraged
on future projects.

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.

Benefits to the Community


Sharing your projects in public extends the benefits to the broader machine learning community.

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.

Build a Machine Learning Portfolio


A machine learning portfolio is a collection of completed independent projects, each of which uses machine
learning in some way. The folio presents the collection of projects and allows review of individual projects.

Five properties of an effective machine learning portfolio include:

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:

Investigate a property of a machine learning tool or library.


Investigate the behavior of a machine learning algorithm.
Investigate and characterize a data set or machine learning problem.
Implement a machine learning algorithm in your favorite programming language.

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.

Making Your Portfolio Great


To make your portfolio shine, you need to do some light marketing. Don’t worry, it’s none of that slimy stuff, just
good old fashioned getting the word out.

Show off what you can do.


Photo by Thomas Shahan, some rights reserved

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.

Curate Your Projects Like a Gallery


Photo by Marshall Astor, some rights reserved

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.

Trend of Machine Learning Portfolio


The idea of a code portfolio is not new, it was baked into GitHub. What is interesting is that in recent interviews with
data scientists and managers, portfolios are being requested even desired along with participation in machine
learning competitions and completion of online training.

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?

Leave a comment and show them off.

What do you think is required of an excellent machine learning portfolio?

Update, see the related post:

Get Paid To Apply Machine Learning

Share Tweet Share

More On This Topic


Three Ways to Build Machine Building Transformer Models with How to Build Multi-Layer
Learning Models in Keras Attention Crash… Perceptron Neural Network…

About Jason Brownlee


Jason Brownlee, PhD is a machine learning specialist who teaches developers how to get results with modern
machine learning methods via hands-on tutorials.
View all posts by Jason Brownlee →

 What Is Holding You Back From Your Machine Learning Goals? Work on Machine Learning Problems That Matter To You 

67 Responses to Build a Machine Learning Portfolio

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 #

I’m glad to hear it Laritza.

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 #

Jason, I liked and appreciate your work.

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 #

Very good! awesome post!

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 #

I’m glad it helped you Karunakaran.

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 #

Thanks for sharing.

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.

Here are my portfolios:

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 #

Well done shravankumar, thanks for sharing!


REPLY 
Mariano June 23, 2017 at 11:13 pm #

Could you post an example of such portfolio?

Can we consider each your post a portfolio itself?

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 #

See this post:


https://machinelearningmastery.com/what-is-machine-learning/

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 #

I would recommend this process:


https://machinelearningmastery.com/start-here/#process

This post will give you ideas on how to lift skill:


https://machinelearningmastery.com/machine-learning-performance-improvement-cheat-sheet/

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 #

I’m glad to hear that.

REPLY 
Mars March 29, 2018 at 7:44 am #

Thank you Jason! Very interesting post!

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 #

Good idea! Thanks!

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 #

Here is a good start:


https://machinelearningmastery.com/faq/single-faq/where-can-i-get-a-dataset-on-___

REPLY 
Mamta May 30, 2018 at 5:47 pm #

Great article feeling more confident now…

REPLY 
Jason Brownlee May 31, 2018 at 6:13 am #

Thanks, hang in there!

REPLY 
Maker July 10, 2018 at 7:08 am #

Thank you Sir,

REPLY 
Jason Brownlee July 10, 2018 at 2:22 pm #

You’re welcome.

REPLY 
Jay Nankani October 31, 2018 at 4:44 pm #

Check out my portfolio


http://www.kaggle.com/jaysn1
http://www.github.com/jaysn1

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

Keep up the good work!

Sincerely Martin

REPLY 
Jason Brownlee November 20, 2018 at 6:34 am #

Well done Martin!

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.

Thanks again for all and best regards,


Dan

REPLY 
Jason Brownlee December 13, 2018 at 7:52 am #

Thanks Dan, I’m eager to see how you go!

REPLY 
Mohd Sakib January 23, 2019 at 3:33 am #

could u post sample portfolio for ML fresher or experienced plz


REPLY 
Jason Brownlee January 23, 2019 at 8:52 am #

Perhaps search on medium or github?

REPLY 
Luzuko March 8, 2019 at 6:38 pm #

Very insightful read…thanks, will implement immediately

REPLY 
Jason Brownlee March 9, 2019 at 6:23 am #

Thanks.

Let me know how you go.

REPLY 
Muhammad iqbal April 27, 2019 at 11:29 am #

Sir, I have 10 projects such like

1) House price predicting

2) iris flower classification

etc

Can I include these projects in my portfolio?

REPLY 
Jason Brownlee April 28, 2019 at 6:53 am #

They would make a great start!

REPLY 
Mohammad Iqbal June 6, 2019 at 5:02 am #

Can you please explain what you mean by

“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 #

Not really. I am encouraging you to market your real skills.


REPLY 
Abhishek Singh August 4, 2019 at 7:22 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 #

You’re welcome, I’m glad they help.

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 #

Thanks for sharing!

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 #

This might help:


https://machinelearningmastery.com/faq/single-faq/what-machine-learning-project-should-i-work-on

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 #

hi jason, i have my repository in github .this is my id https://github.com/wiredata

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 #

I could not agree more!

Leave a Reply
Name (required)

Email (will not be published) (required)

SUBMIT COMMENT

Welcome!
I'm Jason Brownlee PhD
and I help developers get results with machine learning.
Read more

Never miss a tutorial:

Picked for you:

Find Your Machine Learning Tribe

What Is Holding You Back From Your Machine Learning Goals?


Difference Between Classification and Regression in Machine Learning

Machine Learning for Developers

Why Machine Learning Does Not Have to Be So Hard

Loving the Tutorials?

The EBook Catalog is where


you'll find the Really Good stuff.

>> SEE WHAT'S INSIDE

© 2024 Guiding Tech Media. All Rights Reserved.


LinkedIn | Twitter | Facebook | Newsletter | RSS

Privacy | Disclaimer | Terms | Contact | Sitemap | Search

You might also like