海量资源!开发人员成功转行数据科学必备清单
全文共4814字,预计学习时长10分钟
图片来源: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学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)
海量资源!开发人员成功转行数据科学必备清单相关推荐
- 什么是客户旅程_为什么记录您的旅程将导致开发人员成功
什么是客户旅程 by Jonathan Puc 乔纳森·普克(Jonathan Puc) 为什么记录您的旅程将导致开发人员成功 (Why documenting your journey will l ...
- 一份数据科学“必备”的数学基础清单
摘要: 一份数据科学必备的数学知识清单,给出了相应的学习资源,方便秋招者查漏补缺. 秋招已经开始,相信很多同学想从事数据科学岗位.对于数据科学岗位而言,数学知识的储备重要吗?答案显而易见,掌握好数学对 ...
- 销货清单数据_2020年9月数据科学阅读清单
销货清单数据 Note: I am not affiliated with any of the writers in this article. These are simply books and ...
- 转行数据科学路上的点点滴滴
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 本文作者:天善智能社区专家王大伟 天善智能 ...
- Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库
1.什么是anaconda? Anaconda是一个免费开源的Python和R语言的发行版本 如果把Python类比成Linux,那么Anaconda就是centos.ubuntu. 换句话说,Ana ...
- csv导入pgsql不成功_数据科学 | pandas数据导入与导出
↑↑↑↑↑点击上方蓝色字关注我们! 『运筹OR帷幄』原创 作者:杨士锦 周岩 书生 编者按 当我们开始着手做一个数据分析项目时,选择和导入数据集是第一个步骤,而导出数据虽然非必需,但有时候我们也需要保 ...
- Facebook再现丑闻,约100位应用程序开发人员偷看用户数据
Facebook今天披露了另一起安全事件,承认大约100名应用程序开发人员可能不正确地访问了某些Facebook组中的用户数据,包括他们的姓名和个人资料图片. 在周二发布的博客文章中,Facebook ...
- 从跨境电商到成功转行数据分析师,我拒绝了月薪20K的offer... ##
简介 我本科获得了经济学双学位,毕业之后是从事跨境电商的,带销售团队那种.现在已经转行数据分析师1年多了!.在家附近(龙华),965,10几k/月.南山给到20k,但是初创公司要加班,要去南山租房,就 ...
- 流星蝴蝶剑秘籍代码_代码,学习,共享:开发人员成功秘诀
流星蝴蝶剑秘籍代码 对于CodinGame平台为其社区成员提供的一切,我感到无比自豪和高兴. 除了文凭和证书,动机和好奇心还可以创造奇迹. 今天,我与您分享CodinGamer的见证摘要,希望您能从中 ...
最新文章
- Python数字类型及操作汇总(入门级)
- 基于Pygame的Python小游戏,《这是一场滑稽与阴险的较量》
- 服务器的BIOS引导模式设置为什么,Legacy BIOS 引导模式和 UEFI 引导模式
- Python学习笔记三
- Adaboost原理和实例
- 行,这本 Python 书彻底火了!
- c语言嵌套结构体生日,第09天C语言(17):结构体嵌套
- Excel中批量生成复选框,带计算功能。品质管理、调查表常用工具
- 全网最详细的零基础动态web项目集成mybatis框架实现增删改查系统(案例+源码)
- 用python画六边形
- mysql group by 用法解析
- 配置opencv,丢失 opencv_world300d.dll
- 精制糖行业采用树脂工艺进行脱色技术分析
- 飞机大战--java
- 场景背后见真章:银行数字化转型持续深入
- 20管理类联考考研视频全程班资料
- 2020智能交通展新发展方向“5G+智能交通”共赢未来 值得期待
- go语言package简单理解
- 苹果允许用户轻松删除账户,真删还是假删?
- 【献血小常识】------- 解读献血谣言