建立机器学习作品集

完成小而精的项目并展示你的技能

作品集通常被设计师和艺术家用来向潜在客户和雇主展示以往的作品案例。

设计、艺术和摄影等领域,其工作成果是创造性和经验性的,告诉别人你能做到,远不如向他们展示来得有价值。

在这篇文章中,我将说服你,建立一个机器学习作品集对你、对他人以及对整个社区都具有价值。

你将发现机器学习作品集到底是什么,可以包含哪些类型的项目,以及如何让你的作品集真正为你发挥作用。

exhibit your projects

展示你的机器学习项目
照片由 chicagogeek 提供,保留部分权利

机器学习作品集的好处

无论你是刚入门机器学习的初学者,还是经验丰富的老手,机器学习作品集都能让你保持正轨并展示你的技能。创建一个机器学习作品集对你和他人都是一项有价值的实践。

对你的好处

积累一系列已完成的机器学习项目可以让你保持专注、充满动力,并能在未来的项目中加以利用。

  • 专注:每个项目都有明确定义的目标和终点。在精力和资源上受到限制的小型项目可以保持较高的开发速度。
  • 知识库:已完成项目的集合为你提供了一个知识库,供你在涉足舒适区以外的项目时进行反思和利用。
  • 轨迹:有太多光鲜亮丽的东西值得探索,提醒自己正在寻找一系列连贯的项目,可以作为让你保持正轨的杠杆。

对他人的好处

一个已完成项目的作品集可以被他人用作衡量特定技能、沟通能力和驱动力的指标。

  • 技能:一个项目可以展示你在特定问题领域、工具、库、技术栈或算法方面的能力。
  • 沟通:一个项目必须至少在其目的和发现方面被理解。精心策划一个好的作品集需要出色的沟通技巧,这同义反复地证明了你能够很好地沟通技术主题。
  • 动力:无论项目规模大小,从事并完成业余项目都需要一定程度的自律。你成功地整理出一个作品集这一事实,就是你对该主题兴趣和时间管理能力的纪念碑。

对社区的好处

公开分享你的项目,将惠及更广泛的机器学习社区。

  • 参与:一个公开项目可以引来第三方的反馈,这些反馈可能会提供扩展和改进,让你和社区本身都能从中学习。
  • 起点:一个公开的作品集项目可以为他人提供一个起点,他们可以从中学习和发展,也许是为了他们自己的小项目,或者更严肃的事情。
  • 案例研究:一个公开项目可以提供一个研究点,也许是针对一个独特或有趣的算法行为或问题分解,这正是创新的源泉。

希望我已经说服你,建立一个机器学习作品集有一些让你感兴趣的好处。接下来,我们将看看机器学习作品集到底是什么。

建立机器学习作品集

机器学习作品集是一系列已完成的独立项目的集合,每个项目都以某种方式使用了机器学习。作品集展示了这些项目的集合,并允许查阅单个项目。

一个有效的机器学习作品集包括五个特性:

  • 可访问:我提倡以可公开访问的网页或公共代码仓库集合的形式公开作品集。你希望人们能找到、阅读、评论并尽可能使用你的工作。
  • 小巧:每个项目在投入、资源,最重要的是在你的时间上(10-20小时)都应该范围较小。你很忙,而且很难保持专注。请参阅我的“小型项目方法论”。
  • 已完成:小型项目能帮助你拥有完成的项目。设定一个适度的项目目标并实现它。就像微型实验一样,你展示成功和失败的发现,它们都是有用的学习成果。
  • 独立:每个项目都应该是独立的,以便可以单独理解。这并不意味着你不能利用以前的工作,而是指该项目作为一个独立的作品本身是有意义的。
  • 可理解:每个项目必须清晰有效地传达其目的和发现(至少)。花些时间,确保一个初次接触的人能理解你做了什么以及为什么它很重要。

四种可能激发你灵感的小型项目想法包括:

  • 研究机器学习工具或库的某个特性。
  • 研究机器学习算法的行为。
  • 研究并描述一个数据集或机器学习问题。
  • 用你喜欢的编程语言实现一个机器学习算法。

一些你可能没想过可以作为作品集项目的想法包括:

  • 课程作业:清晰地展示你为机器学习相关课程(如MOOC)所做的笔记和作业。
  • 书籍评论:清晰地展示你阅读和评论一本机器学习书籍的笔记。
  • 软件评测:清晰地展示和提供使用机器学习相关软件工具或库的工作示例。
  • 竞赛参与:清晰地展示你参加机器学习竞赛(如 Kaggle)的笔记和结果。
  • 评论:针对机器学习主题博客文章的回应文章,或在问答网站(如 QuoraReddit 机器学习板块CrossValidated)上对机器学习相关问题的详细回答。

现在你已经知道机器学习作品集是什么,并且有了一些项目想法,让我们来看看如何让你的作品集更出色。

让你的作品集更出色

为了让你的作品集脱颖而出,你需要做一些轻度的营销。别担心,不是那些油腻的手段,只是传统的宣传推广。

show off what you can do

展示你的能力。
照片由 Thomas Shahan 提供,保留部分权利

代码仓库

考虑使用公共源代码仓库,如 GitHubBitBucket,它们自然会列出你的公共项目。这些网站鼓励你在每个项目的根目录下提供一个 readme 文件来描述项目内容。利用这个功能清晰地描述每个项目的目的和发现。不要害怕包含图片、图表、视频和链接。

提供明确的指令来下载项目和重现结果(如果涉及代码或实验)。你希望人们能够重新运行你的工作,所以要让这个过程尽可能简单(例如,输入这个来下载,然后输入这个来构建和运行)。

精选项目

你可以在GitHub上随意堆砌任何旧项目,但只应将你最好、最清晰、最有趣的作品收录到你的机器学习作品集中。

像策展画廊一样精选你的项目。选择那些最能展示你的技能、兴趣和能力的项目。展示你能做什么和你已经做了什么。这些自我推广的想法可以反过来影响你想要 tackling 的项目。明确你的愿景,你想达到的位置,以及哪些项目能帮助你实现目标。掌控这个过程。

curate like a gallery

像策展画廊一样精选你的项目
照片由 Marshall Astor 提供,保留部分权利

展示成果

花大量时间撰写结果。解释它们如何与项目目标相关联。解释它们在领域内或可能产生的影响。列出如果你有一个月或一年的时间深入研究该项目,你会或可能会探索的扩展机会。

创建表格、图表以及任何其他漂亮的图片来帮助你讲述你的故事。将你的发现写成一篇博客文章。如果想加分,可以创建一个简短的屏幕录像,展示你如何得到结果,并制作一个小的PowerPoint演示文稿来说明它们的意义,然后上传到YouTube。这个视频可以嵌入到你的博客文章中,并从你的项目仓库的readme文件中链接过来。

根据你所拥有的发现以及它们对你的重要性(例如在Kaggle竞赛中取得好成绩),你可以考虑创建一份技术报告并上传到Scribd,并将你的幻灯片上传到SlideShare。

推广你的作品

你可以在完成每个项目时分享其细节。根据你在学习和/或工作之余能找到的空闲时间,你可能每周能完成一个。在社交媒体上分享链接是一个很好的开始,例如Twitter、Facebook和Google+。

我强烈建议你将每个项目(或只是你最好的项目)作为“项目”添加到LinkedIn上。它支持项目这个概念,你可能需要创建一个职位来将它们列在下面。可以考虑使用你的博客名称、你的个体经营公司名称,或者创造一个相关的职位和头衔,例如“机器学习大师”(眨眼)或“自我教育”。

既然我们已经有了一些让作品集脱颖而出以及如何宣传的想法,现在来看看一些机器学习作品集的例子。

机器学习作品集的趋势

代码作品集的想法并不新鲜,它已经融入了GitHub。有趣的是,在最近对数据科学家经理的访谈中,作品集被要求甚至被期望,同时还有参与机器学习竞赛和完成在线培训。

就像编程面试中的示例代码一样,机器学习作品集正在成为招聘中一个严肃的组成部分。

寻找优秀的(或至少是内容充实的)机器学习作品集范例。关注那些在机器学习竞赛中表现出色的人,他们通常在自己的博客和公共代码仓库中有一系列令人惊叹的项目描述。

寻找开源机器学习项目的贡献者,他们可能在自己的博客和公共代码仓库中有关于该软件的精彩教程、应用和扩展。

现在就开始吧。把你过去的项目挖掘出来,把它们组织成一个故事,来解释你在机器学习方面的知识、兴趣或技能。

轮到你了

你是否完成过机器学习项目,或者你是否有一个项目作品集?

留下评论来展示它们吧。

你认为一个优秀的机器学习作品集需要具备什么?

更新,请参阅相关文章

关于打造一个机器学习作品集的 69 条回应

  1. Ryan Herr 2014年6月10日 1:16 am #

    有什么好的作品集范例推荐吗?特别是那些帮助人们入行并找到工作的例子?

  2. Laritza 2016年8月22日 4:03 am #

    非常感谢这篇精彩的文章。我正在考虑创建一个在线数据科学作品集,你所有关于机器学习项目的建议都是一个极好的起点。

    • Jason Brownlee 2016年8月22日 7:23 am #

      很高兴听到这个消息,Laritza。

    • Sagar 2016年10月6日 11:22 pm #

      +1 Laritza。
      又一篇精彩且写得很好的文章。观点精准。拥有一个机器学习作品集确实是个好主意。

      • Ossama Zaiter 2019年9月11日 6:39 am #

        Jason,我喜欢并欣赏你的工作。

  3. Hrishikesh Kherdekar 2017年1月25日 4:48 pm #

    嗨,Jason,
    感谢这篇精彩的文章。能否给我看一个作品集样本?我是机器学习新手。

    此致,
    Hrishikesh

  4. Freelance Paraguay 2017年2月17日 2:27 pm #

    非常好!很棒的文章!

  5. Vinod Ralh 2017年3月8日 11:10 am #

    我之前没有认真考虑过这件事……但这是一个很棒的主意……即使对自己来说,也能‘巩固’我自己的学习。

  6. Karunakaran 2017年4月30日 4:00 pm #

    这太棒了。

  7. Porimol Chandro 2017年5月15日 5:04 pm #

    嗨,Jason,

    感谢这篇精彩的文章。我是机器学习技术领域的新手。每天我都在这个领域学习,并学习新的术语、技术和算法。
    虽然我是新手,但我开始了一个关于机器学习的小项目。我致力于构建一个性别预测的监督式机器学习模型。这是 GitHub 仓库链接

    https://github.com/porimol/gender-predictor

  8. shravankumar 2017年6月3日 10:34 pm #

    嘿,Jason,

    非常感谢这篇精彩的博文。你所有的博文和新闻通讯都给了我很大的启发,你让机器学习对我来说变得如此简单。

    这是我的作品集

    我过去常在这里写博客文章,帮助人们从我的经验中学习
    shravankumar147.wordpress.com

    这是我的GitHub页面,上面探索并开源了许多项目
    https://github.com/shravankumar147

  9. Mariano 2017年6月23日 11:13 pm #

    你能发布一个这样的作品集示例吗?

    我们可以将你的每一篇文章都视为一个作品集本身吗?

  10. Jadhav datta 2017年7月20日 1:40 am #

    孩子,我是机械专业的学生,也是初学者,所以我不知道什么是机器学习。你能告诉我机器学习有哪些应用吗?

  11. MohammadEhtasham Billah 2018年2月1日 4:50 am #

    我正在做一个项目。我试图预测下个月将要违约的信用卡持有人。到目前为止,我还没有找到任何满意的结果。不同算法的精确度指标如下:

    准确率 : 82-84%
    精确率 : 66-70%
    召回率:35-37%
    F1 分数:42-47%

    准确率较高是因为大多数客户下个月不会违约。但在预测将要违约的客户时,结果非常差(正如你在召回率中看到的那样)。到目前为止,我已应用了:KNN、SVM、核SVM、决策树。我已经尝试为这些模型微调超参数。结果没有太大改善。所以,我打算应用随机森林、朴素贝叶斯和XGBOOST以及一些集成方法。你认为我的发现值得在github上发布吗?

    谢谢你

  12. Shueb 2018年2月26日 8:16 pm #

    非常感谢 Jason,给出的步骤澄清了我对机器学习以及它将如何在应用中使用的理解。

  13. Mars 2018年3月29日 7:44 am #

    谢谢你,Jason!非常有趣的文章!

    我目前在一家公司担任电气工程师,并开始着手一些自己提议的内部机器学习项目,我的问题是:既然我不能将这些项目公开,我该如何将它们放入我的机器学习作品集中呢?

    • Jason Brownlee 2018年3月29日 3:15 pm #

      好问题。也许你可以总结方法和发现,而不泄露私人细节。

      • mars 2018年4月3日 11:46 pm #

        好主意!谢谢!

  14. Jesús Martínez 2018年4月12日 12:05 am #

    拥有一个作品集,即使你不从事机器学习,也绝对是必要的。作品集的妙处在于,它们展示了潜在雇主喜欢员工的大部分技能:干劲、热情、专注、自主性和技术知识!根据我的经验,在GitHub上有项目很好,但开发可以作为小产品使用的端到端应用程序(可能是一个网页或一个简单的移动应用)效果最好!

  15. Daniel 2018年4月27日 3:20 am #

    Jason,感谢为我们这些新手提供了一份路线图。对于我们可以用来构建项目的工业和政府公共数据存储库,你有什么推荐吗?

  16. Mamta 2018年5月30日 5:47 pm #

    很棒的文章,现在感觉更有信心了……

  17. Maker 2018年7月10日 7:08 am #

    谢谢您,先生,

  18. Jay Nankani 2018年10月31日 4:44 pm #

    看看我的作品集
    http://www.kaggle.com/jaysn1
    http://www.github.com/jaysn1

  19. Momil Ijaz 2018年11月19日 3:52 pm #

    我应该用我在学习 Andrew Ng 的 Coursera 机器学习入门课程时做的小型初学者项目来建立一个作品集吗?

  20. Martin 2018年11月19日 7:39 pm #

    嗨,Jason,

    非常感谢您这篇以及所有其他的帖子,您帮了我很多。

    我刚刚完成了我的第一份机器学习报告,如果您感兴趣,可以在这里找到它 https://github.com/Aillie/Auto-MPG-MAchine-Learning

    请继续保持出色的工作!

    真诚的 Martin

  21. danz 2018年12月12日 9:10 pm #

    嗨,Jason,

    非常好的建议!
    我特别喜欢从一个适度的项目开始的建议。
    另外,我喜欢在GitHub上创建一个可以展示给雇主的作品集的想法。
    一个作品集肯定会帮助以扎实的方式积累知识。
    在这篇文章之前,我也有类似的想法,但我考虑在……之前更深入地研究文档(这就是我接触到注意力网络的原因,这个主题目前对我来说显然太难了)。
    但现在我决心开始建立一个作品集,即使一开始很普通,并购买你的《Python机器学习精通之路》作为第一个灵感来源。

    再次感谢一切,并致以最诚挚的问候,
    Dan

    • Jason Brownlee 2018年12月13日 7:52 am #

      谢谢你,Dan,我迫不及待地想看看你的进展!

  22. Mohd Sakib 2019年1月23日 3:33 am #

    能否为机器学习新手或有经验的人发一个作品集样本?

  23. Luzuko 2019年3月8日 6:38 pm #

    非常有见地的阅读…谢谢,我会立即实施

  24. Muhammad iqbal 2019年4月27日 11:29 am #

    先生,我有10个类似这样的项目

    1) 房价预测

    2) 鸢尾花分类

    等等

    我可以将这些项目包含在我的作品集中吗?

  25. Mohammad Iqbal 2019年6月6日 5:02 am #

    您能解释一下您的意思吗?

    “我强烈建议你将每个项目(或只是你最好的项目)作为“项目”添加到LinkedIn上。它支持项目的概念,你可能需要创建一个职位才能将它们列出。考虑一下你的博客名称、你的个体经营公司名称,或者创造一个相关的职位和头衔,比如“机器学习大师”(眨眼)或“自我教育”。”

    您是建议我们完成项目,然后给自己一个“机器学习工程师”的职位头衔,并以我们自己的公司作为雇主吗?因为这听起来是个好主意。

  26. Abhishek Singh 2019年8月4日 7:22 am #

    非常感谢,@Jason B,感谢你与社区分享的所有精彩文章。非常实用、清晰、简洁。

  27. Franck Tchouanga 2019年10月23日 9:52 pm #

    完全可用的从png到mnist数据集的转换算法,请查看此存储库

    https://github.com/Tchouanga12/png-to-mnist-convertion-algorithm

  28. Franck Tchouanga 2019年10月24日 6:22 am #

    欢迎,先生。

  29. Atul 2020年1月30日 5:52 pm #

    先生,我实际上是信息技术专业的大三学生,我需要提交一个主项目到大四,所以请给一些关于机器学习项目的建议,
    如果你有任何用Python做的机器学习项目,我准备好接受……谢谢……!

  30. Nishant DWIVEDI 2020年4月7日 3:00 am #

    嗨,Jason.. 我应该如何开始进入机器学习领域.. 我已经找了一年多的路子想进入机器学习了…

    此致,
    Nishant Dwivedi

  31. bala 2020年9月12日 4:04 pm #

    嗨 jason,我在 github 上有我的仓库。这是我的 id https://github.com/wiredata

  32. Sylvanus 2021年1月27日 11:08 pm #

    感谢 Jason 的详尽文章。我迫不及待地想开始建立我的博客。

  33. JC Chouinard 2021年3月4日 4:22 pm #

    我发现写博客记录你的学习过程是快速学习的最佳方式。为自己写,不要遗漏任何一个步骤。这样,即使没有人看你的博客,至少你自己会用。而且,公开承诺写关于机器学习(或任何其他主题,我的是SEO)的博客会迫使你产出更高质量的内容,并更深入地挖掘你对一个主题的理解。用这种方式学习得更快。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。