图片来源:pexels.com/@tdcat
现在很多人都想成为一名数据科学家——从博士生到数据剖析师。大概开拓职员有同样的想法,以为自己至少应找一些数据科学的岗位,看看热门的缘故原由是什么。
Vicki Boykis所写的“数据科学现在分歧凡响”文章中提到:
显而易见,在技能循环曲线的后期阶段,数据科学逐渐靠近工程学,数据科学家须要连续发展的技能不再基于统计和可视化,而是更符合传统的打算机科学……像单元测试和持续集成这样的观点很快就变成行话,并成为从事机器学习工程的数据科学家和数值科学家常用的工具集。
Tim Hopper在推文中说:利用作为软件工程师的履历进入数据科学行业,可能会碰着的其他一些问题是:该当优先学习什么?科学家是否有分歧凡响的最佳实践方法或工具?我目前的技能是否能延伸到数据科学?
Cecelia Shao绘制
针对上面的这些话题,本文将供应有关数据科学家的背景知识,详述开拓职员的背景可能非常适宜数据科学的缘故原由,以及想要不断学习数据科学的开拓职员可采纳的一些切实分步操作。
数据科学家与数据工程师
首先,我们该当区分这两个互补的角色:数据科学家与数据工程师。虽然这两个职位都会处理机器学习模型,但他们与这些模型的交互办法以及各自的事情哀求和性子都有很大的差异。
把稳:专攻机器学习的数据工程师职位也可能在职位描述中写为“软件工程师,机器学习”或“机器学习工程师”。
数据科学家要实行所需的统计剖析,以确定利用哪种机器学习方法,然后开始设计原型并构建这些模型。这是机器学习事情流程的一部分。
机器学习工程师常常在数据建模过程之前和之后与数据科学家在这些方面互助:1. 构建数据管道以将数据供应给这些模型;2. 为这些模型设计一个工程系统,以确保模型持续正常运行。
开拓职员拥有的上风
环绕机器学习的课程,如“Python中的数据科学入门 (Introduction to Data Sciencein Python)”或者是吴恩达的Coursera课程,都不包括软件工程的观点和最佳实践,如单元测试、编写模块化可重用代码、CI / CD或版本掌握,这对我们不利。乃至一些前沿的机器学习团队仍旧没有将这些技能运用于他们的机器学习代码中,这个趋势实在是令人不安……
PeteWarden将这一趋势描述为“机器学习再现性危急”:
我们又从头开始跟踪变革和重修模型了,这解释我们仍旧处于阴郁时期。这种觉得太糟糕了,有时就像在没有源代码掌握的时候重写代码一样,让人想要退缩。
虽然大家可能并没有看到数据科学家的职位描述中明确规定的这些“软件工程”技能,但节制这些技能作为背景知识的一部分,有助于达到数据科学家的十倍事情量。此外,在口试数据科学岗位回答那些编程问题时,这些技能就有用了。
如果转行的方向相反,这里也有一些有趣的不雅观点,比如Trey Causey所写的《数据科学家可以节制的软件开拓技能》 (Softwaredevelopment skills for data scientists)”。他在文章中建议数据科学家该当学习一些技能,以“编写更好的代码,与软件开拓职员更好地互换,终极节省韶光、避免麻烦”。
快速学习数据科学知识
开拓职员常日拥有良好的软件工程背景根本,这是一件好事;但是要想成为数据科学家,下一步还要做什么?
如果有兴趣成为数据科学家,那么你该当关注一下统计学。接下来,我们将先容大量的以下方面的资源:
· 积累机器学习的特定知识
· 积累行业的特定知识
· 机器学习堆栈中的工具
· 技能和资格
积累机器学习的特定知识
最有效的方法是将基于理论的知识与概率和统计学组合起来,同时把学到的技能运用于数据整理或演习模型上,比如在GPU /分布式打算上。
有一种构建知识体系的方法,即与机器学习事情流程相互比拟。
机器学习事情流程的简化视图
可参阅Skymind AI供应的详细事情流程。
在这里列出了一些有关机器学习的精良资源。我们没法列出一个详尽的清单,并且为了节省空间(和阅读韶光),我们没有提到一些非常受欢迎的资源,如吴恩达的Coursera课程或Kaggle。
课程:
· Fast.aiMOOC(免费课程,极具运用性:Practical Deep Learning for Coders、Cutting EdgeDeep Learning for Coders、Computational Linear Algebra、and Introduction to Machine Learning for Coders等)
· 可汗学院
· 3Blue1Brown和mathematmonk YouTube频道
· Udacity课程(包括Python中机器学习的预处理)
· SpringboardAI / ML课程
教科书:网上可以免费找到大部分的PDF
· 概率编程与贝叶斯推断 (ProbabilisticProgramming & Bayesian Methods for Hackers)
· 概率论和随机过程 (Probabilityand Random Processes)
· 统计学习根本 (Elements of Statistic Learning)
· 线性代数该当这样学 (LinearAlgebra Done Right)
· 线性代数入门 (Introductionto Linear Algebra)
· 算法设计 (AlgorithmDesign)
指南:
· Google开拓职员机器学习指南 (Google Developers Machine Learning Guide)
· 机器学习节制指南 (MachineLearning Mastery Guides)
· Pyimagesearch(用于打算机视觉)
初学者如果想赢在起跑线上,请查看Will Wolf的“开源机器学习大师 (Open-SourceMachine Learning Masters)”,理解如何合理安排韶光,在学习特定内容的同时开展项目,以远程低本钱的办法展示专业知识与履历。
积累行业的特定知识
如果你想进入一个特定的行业,如医疗保健、金融做事、消费品、零售等,那么你非常须要快速理解该行业的痛点和发展情形,由于这涉及到数据和机器学习。
一个专业提示:可以看一看特定的垂直AI初创公司的网站,看看他们如何选择的代价主见,以及机器学习在什么地方发挥浸染。这可以让你理解可以学习机器学习的哪些特定领域,以及可以用于作品展示的项目主题。
我们可以举一个例子:假设我对医疗保健事情很感兴趣:
1. 通过快速谷歌搜索“机器学习医疗保健”,可以在Healthcareweekly.com上找到2019年“最值得关注的医疗初创公司”的清单;还可以利用“healthcare”作为关键字在Crunchbase或AngelList上进行快速搜索。
2. 以列表中的一家公司BenevolentAI为例。
3. BenevolentAI的网站上写到:
我们是一家具有端到端能力的人工智能公司,从早期药物研制和后期临床开拓均有阅读。BenevolentAI将打算医学和高等人工智能的强大功能与开放系统和云打算的事理相结合,以改变药物的设计、开拓、测试和推向市场的办法。
我们建立了Benevolent平台,以便更好地理解疾病,并从大量生物医学信息中设计新型的治疗方法,同时并改进现有的方法。我们相信,我们的技能使科学家能够更快捷,更经济地开拓药物。
每30秒便有一篇新的研究论文揭橥,但科学家目前只利用了一小部分知识来理解疾病的缘故原由并提出新的治疗方法。我们的平台从书面文档、数据库和实验结果中提取的大量信息,并结合研究背景进行仔细剖析,能够在这些不同的繁芜数据源上进行无限多的推论和推断,识别并创建新的关系,趋势和模式。这是一个人无法完成的事情。
4.你可以立即看到BenevolentAI正在利用自然措辞处理,如果他们正在研究疾病与治疗研究之间的关系,可能会利用一些知识图谱。
5.如果查看BenevolentAI的职业页面,可看到他们正在招聘高等机器学习研究员。这是一个高等职位,以是大概不是最恰当的例子,但我们要先看看该公司下列所哀求的技能和资格:
· 自然措辞处理、知识图谱推断、主动学习和生化建模
· 构造化和非构造化数据源
· 贝叶斯模型方法
· 理解机器学习的当代工具
这可为转行供应一些方法:
· 利用构造化数据
· 利用非构造化数据
· 对知识图中的关系进行分类
· 学习贝叶斯概率和建模方法
· 处理NLP项目(文本数据)
不建议通过搜索找到的公司申请,而是先看看他们如何描述客户的痛点、公司的代价主见、以及在事情描述中列出的技能,再让这些辅导自己做进一步的调研。
机器学习堆栈中的工具
在BenevolentAI高等机器学习研究员职位描述中,他们哀求“理解机器学习的当代工具知识,例如Tensorflow,PyTorch等”;
学习这些机器学习的当代工具彷佛令人生畏,由于这个天下总是在变革。要将学习过程分解为可管理的部分,请记住将自己的思考与上面的机器学习事情流干系联:“什么工具可以帮助我完成事情流程的这一部分?”
要查看该机器学习事情流程的每个步骤中的哪些工具,请查看Roger Huang的“机器学习堆栈简介 (Introduction to the Machine Learning Stack)”,个中先容了Docker、Comet.ml和dask-ml等工具。
从战术上讲,Python和R是数据科学家最常利用的编程措辞。你还会找到一些为数据科学运用程序设计的拓展包,例如NumPy、 SciPy和matplotlib。这些措辞是阐明型措辞,而不是编译措辞,使得数据科学家可以专注于问题,而不是去考虑措辞的细微差别。面向工具的编程也很值得学习,这可以帮助你理解数据构做作为类的运用。
要理解像Tensorflow、Keras和PyTorch这样的机器学习框架,请务必转到他们的文档并考试测验端到端地重现教程。
末了,你还须要确保构建的项目能够展示这些当代工具是如何用于数据网络、整理、管理机器学习实验和建模的。
有关项目的一些灵感,请查看Edouard Harris关于“冷启动问题:如何建立自己的机器学习项目档案(The cold start problem: how to build your machine learningportfolio)”的文章。
技能和资格
数据科学家在口试期间会有六个紧张话题:
1.编程
2.产品
3.SQL
4.A / B测试
5.机器学习
6.概率
可把稳到个中一个主题与其他主题不同(产品)。对付数据科学职位,能够与他人进行沟通,解释一些技能观点、结果、业务指标及其影响也是至关主要的。
一些关于数据科学口试问题的有用资源汇总:
· https://github.com/kojino/120-Data-Science-Interview-Questions
· https://github.com/iamtodor/data-science-interview-questions-and-answers
· https://hookedondata.org/red-flags-in-data-science-interviews/
· https://medium.com/@XiaohanZeng/i-interviewed-at-five-top-companies-in-silicon-valley-in-five-days-and-luckily-got-five-job-offers-25178cf74e0f
你会把稳到我们在上面推举了Hooked on Data’s piece on ‘Red Flags in Data Science Interviews’,这是由于在开拓职员进行岗位口试时,会碰着仍在构建数据根本架构的公司,或者有的公司并没有充分认识到数据科学团队会对公司代价有多大的贡献。
这些公司可能仍在攀升以下的这种需求层次。
MonicaRogati的盛行AI需求层次
对付数据科学口试的一些期望,建议阅读Tim Hopper的文章“Some Reflections on BeingTurned Down for a Lot of Data Science Jobs”。
留言 点赞 关注
我们一起分享AI学习与发展的干货
编译组:陈枫、宋宇飞
干系链接:
https://www.kdnuggets.com/2019/06/developer-transitioning-data-science-best-resources.html
如需转载,请后台留言,遵守转载规范