行业资深专家切身经验——给数据科学家新手的一些建议

简介: 本文是行业资深从事人员写的关于数据科学的个人反思,一份关于数据科学之路及科研认知的心路历程,相信本文对许多有抱负的数据科学家是非常有用的。

首发地址:https://yq.aliyun.com/articles/224350

本博主关于数据科学的文章有许多篇,系列总结在此博客中:

关于数据科学的那些事

未来是大数据的时代,成为一名数据科学家是从事这方面研究者梦寐以求的职业本文是一份给数据科学家新手的建议,关于作者学习数据科学的一些亲身体会。

81e77806e119653bfd57537a13ba2d97b6c22a00

动力

两年前,我在行业分享了个人从事数据科学经历本文原本是为了庆祝自己两年的推特纪念日而写的个人反思,最终发表在Medium上,这是因为我相信它许多有抱负的数据科学家是非常有用的。

很快到了2017,我在Airbnb不到两年的工作时间里成为高级数据科学家。当回顾目前为止的旅程想象下一个来的是什么,我写了这些关于我早期职业生涯的一些认识。

如果我之前博文的目标受众是有抱负的数据科学家以及对这个领域完全陌生的人,那么本文是针对那些已经在这个领域刚刚起步的人。这篇文章的目的不仅是要用提醒自己已经学到重要的知识,同时也激励那些从事数据科学事业的人

你在谁的关键路径

Philip Guo在他的博客“你在谁的关键路径上?”中阐述了以下观察:

  • 如果我是在导师的关键路径,然后他们会努力提供帮助以确保我成功相反,如果我没有导师的关键路径,通常我自己照料自己。如果你在某人的关键路径,然后你强迫他们把你的成功与他们联系起来,这将激励他们尽可能的提升你

d3f0ca9243dd5542bca1158b0c484c01d8bd3bdc

这项工作的结果是相当直观的,通过早期的职业生涯作为一个例子

在推特时,我一直想了解更多关于机器学习的知识尽管我的团队是数据驱动但在很大程度上需要数据科学家关注实验设计及产品分析。尽管我尽了最大的努力,经常发现很难将学这类知识的欲望嫁接到团队的关键项目中。

因此,当我来到Airbnb,我有意识地决定集中加入一个项目/团队,其中机器学习是该项目成功的关键。在我跟经理确定的几个有前途的工作中,在Airbnb对客户终身价值(LTV)的房源建模。

这个项目不仅是我们事业成功的关键,也是我职业生涯的发展。我学到了构建大规模机器学习模型的工作流程,以及一些解决具体的业务问题的情境学习的优化方法

毫无疑问,选择项目框架在导师的关键路径可以使我们越来越幸运。

学到的准则:我们都希望发展感兴趣及追寻的知识,发现项目、团队和公司的关键路径,它们最好与你一致。

针对问题选择正确的工具

Airbnb工作之前,我常使用R和dplyr语言。从开始LTV项目,我很快意识到使用Python去构建复杂的管道更容易些,此时我面临一个两难情形——应该从R到Python

9674380c2425af05a29a60b5e88045b52cceee15

这是数据科学家普遍会遇到的一个的问题,因为选择哪种语言都是困难的。对我来说,这中间显然存在一个转换成本。经过利弊权衡再做选择,但我想它越陷决策瘫痪的陷阱。最终,我通过看了这个逃离瘫痪:

  • 不要思考学习哪种编程语言,而要思考哪种语言能为你提供特定领域语言(DSL的正确设置并适合你的问题。

工具的合适性始终依赖于上下文以及特定问题。因此不要关心是否应该学习Python,而是关心Python是否适合做这项工作。用下面是一些例子详细描述这点

  • 如果你的目标是应用最新的、先进的统计方法,R语言可能是更好的选择。因为R是由统计人员为统计人员建立。每一周,CRAN有很多有趣的新R包提供。
  • 另一方面,Python对于构建生产数据管道非常管用,因为它是一个通用的程序设计语言。例如,可以在蜂巢使用Python UDF轻易地构建一个scikit学习模型做分布式评分。
学到的准则:不要纠结于单一的技术或编程语言,而是关心哪个工具或技术能最好地帮助你解决问题?关注于解决问题,工具自然而然的就确定了。

建设学习型项目

虽然我之前没有使用Python,并且从来没有真正正确的学好Python基础,导致我害怕代码被分成相关的我一直想知道,__init__ .py是用来做什么的

在打算真正学好基础的这段时间中,我从Anders Ericsson刻意练习研究中获得灵感

  • 刻意练习是由教师设计的活动,其目的是有效地改善个人在具体方面的表现。

鉴于我是自己的老师,所以我需要自己设定练习计划。例如,我开始策划学习计划的一套材料,都是与机器学习最相关的Python内容。这个过程花了我几周时间之后选定一个个性化的课程。所有这些前期工作是为了确保我能走上正确的学习之路下面是一些项目里程碑(由于关于Python的基本概念,这里没有进行翻译):

02ff9be05ccc6b61bf46dcfecfd24ee22264ca39

一旦有了明确的课程,使用以下策略在工作中刻意练习

  • 反复练习:我强迫自己做一些简单的事情,比如Python中的非关键任务的分虽然这会拖慢我的效率,但这强迫我熟悉pandas的基本API而必有时间负担。
  • 建立反馈回路:在适当的时候就机会审查其他人的代码并修复一些小错误,在编写自己的代码时,试图重构它几次使其更具可读性。
  • 分块学习和回顾:每到周末,我会写下了那一周进度,包括研究的重要资源了解到概念等通过回顾所学的内容,能够更好地消化相关概念。

学到的准则:在许多实践实验的支撑下,在进入一个项目之前,提前规划可以帮助你更加刻意的练习。重复、组块、回顾和反馈是加强学习的最有用的方式。

与有经验的数据科学家搭档

一个关键成分刻意练习得到及时的反馈和行动。任何伟大的运动员、音乐家或数学家没有指导或有针对性的反馈情况下就能够成就伟大。

我从那些有成长型思维的人观察到的一个共同特点他们都不会为承认不知道的东西而感到羞愧,他们不断寻求反馈。长期自我回避不会的问题在大多数情况下都错过学习的机会。

e84208c5b860cd80d865ce2b892d8a033cb6cede

在这个项目,我很少的将机器学习模型应用于生产的经验在这个项目中,我做的最好的决定之一是提前告知我的合作者关于我对机器学习的基础知识知之甚少,但我非常想学并且保证随着我知识的积累,会让自己对团队更加有用

这是一个很好的策略,因为人们一般喜欢分享他们的知识,尤其是当他们知道最终受益的会是他们的导师时。下面是一些具体例子,如果没有我的合作伙伴的指导我不会学得很快:

  • Scikit学习管道:我的合作者建议采用Sklearn的管道施工可以让我的代码更模块化。这个工具使我的代码更简洁、更可重复使用而且更容易兼容生产模型。
  • 模型诊断由于我们的预测问题涉及时间,合作者告诉我典型的交叉验证行不通,使用时间序列的交叉验证一个更好的方法。
  • 机器学习的基础建设在机器学习工程师的帮助下,我学会了通过virtualenvs管理包的依赖关系如何使用picking序列化模型等。

由于学到了更多的新概念,不仅能够将其运用项目能够参与到项目讨论使得项目能做得更好。知识共享创造了一个良性循环使我成为一个更好的伙伴。

学到的准则:从长远来看,自我审查在大多数情况下都错过了学习机会,早点表明你的求知欲,使自己变得更好而变得更有用。

教学以及传福音

经过年的研究生导师工作,我一直都知道我对教学的热诚。Richard Feynman一位诺贝尔奖物理学得主了不起的老师,讲述了自己的教学观:

  • 如果不能将知识给一些基础薄弱的人讲解明白,这意味着我们自己都没有真的弄明白。

知道这些教学技巧可以提高我个人理解的水平,我寻找机会仔细记录模型的实现过程、提供学习午餐并鼓励其他人尝试新的工具。

截至九月下旬,我已经开始与我们的内部数据大学团队合作并准备了一系列关于内部机器学习工具系列。我不知道这最终会走向哪里,但我Airbnb会驱动更多与机器学习相关的教育。

最终,我会用一条来自Hadley Wickham的一条推特结束这部分:

  • 有用的东西不仅仅是新软件,还包括解释现有工具、案列研究、描述工作流程以及良好的错误报告等。

                    — @hadleywickham

学到的准则:教学是检验你对这门学科理解以及提高技能的最好方法,当你学到有价值的东西时,请与他人分享。你并不总是需要创建新的软件,解释现有的工具如何工作也是非常有价值的。

在步骤k时,想想你的第k+1

从专注于自己的项目,到与机器学习指导团队的合作,最终使得其他数据科学家能更多地了解机器学习工具。原来的项目范围比几个月前更大,诚然,我从来没有预料到这放在第一位。

当我思考这个项目的演变,有一件事情以往的项目不同那就是对当前事物状态有点不满,总是想让它做得更好一点。描述这最动人的方式来自Claude Shannon的写作

96bf1d6aba9450ef1e9d9e43eccaf2b8d492d410

“有不满的想法,这并不意味着对世界悲观不满——我们不喜欢事情进行的方式是——我指的是一个建设性的不满。思想可以用文字表达,这虽好,但我认为事情可以做得更好。我想有一个更简洁的方法来做这件事,我认为情况会有所改善。换句话说,当事情看起来不太好时,需要有持续的轻微刺激;我认为对目前的不满是好的科学家的一个关键驱动力

不是一个合格的科学家,但我觉得稍微不满的表征相当你是否能扩展你的项目影响。在我的项目中,每当我在步骤k,我自然会开始思考如何k+1及更远。

我认为这种心态是非常有帮助的——用你良好鉴赏力和轻微的不满来坚持不懈地为你的进步加油

学到的准则:在做一个项目时注意你内心的不满,这些都是关于你如何改进和将项目扩展到下一个级别的线索。

分离想法:你和你的工作

最近,我听了Richard Hamming的演讲,演讲的题目是你和你的研究”,也可以被命名为你和你的事业

在演讲中分享了一些他的故事,有几点对我很重要。

  • 如果你正在做的事情是不重要的,不可能会重要,你为什么这么做?你必须研究重要问题。这么多年的星期五下午我都会思考我研究领域中重要的问题[这占我工作时间的10%]
  • 让我提醒你重要的问题,重要的不是结果,有些问题不重要是因为你还没有受到抨击。问题的重要性在很大程度上取决于如果你是否有办法去解决问题。
  • 这整个过程,我想教你的东西是风格品味,所以你会有一些直觉,什么时候问题是正确的,什么问题是正确的以及如何去解决它。正确的问题在适当的时间以适当的方式解决,并且没有其他的解决方法。

重要问题对于你来说是重要的;对他来说,这是科学的问题对于我们大多数人来说,这可能是不同的东西。他还谈到制定进攻计划的重要性如果你没有一个计划,那么这个问题并不重要,但后果很严重。最后他提到了自己独特的风格和品味做事情

做重要工作的标准很高,但这是值得效仿的。当你发现你重要问题,你自然会努力做的更好使其更有效;你会找到教育别人关于它的意义;你会花时间其他厉害的人学习并学好自己手艺


那么最后问自己,在你的关键路径上,对你来说最重要的问题是什么欢迎读者留言反馈。


作者信息

77a06740841c419341f01e3adf318a776bb1ac75

Robert Chang一名高级数据科学家,现工作于Airbnb

Linkedinhttp://www.linkedin.com/in/robert-chang-877b1720/

Medium:https://medium.com/@rchang

Twitter:https://twitter.com/_rchang

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题Advice For New and Junior Data Scientists》,作者: Robert Chang,译者:海棠,审阅:李烽,董小姐

文章为简译,更为详细的内容,请查看原文

翻译者: 海棠 

Wechat:269970760 

Email:duanzhch@tju.edu.cn

微信公众号:AI科技时讯

157f33dddfc596ede3681e0a2a0e7068dc288cc1

目录
相关文章
|
23天前
|
人工智能 算法 大数据
技术之旅:从新手到专家的蜕变####
【10月更文挑战第20天】 本文探讨了个人在技术领域的成长历程,通过真实案例与深刻感悟,揭示了持续学习、实践积累与心态调整的重要性,为读者提供了一条从技术新手迈向专家的可行路径。 ####
27 8
|
1月前
|
敏捷开发 搜索推荐 测试技术
软件开发职业心得:从新手到专家的转变
在软件开发领域,每位开发者都需要经历从新手到专家的成长过程。本文分享了六大职业心得:持续学习以应对快速变化的技术;注重代码质量,遵循规范并积极审查代码;提升沟通技巧,促进团队协作;培养问题解决能力,高效应对挑战;优化时间管理,提高工作效率;实施持续交付,确保软件质量。希望这些经验能助力你在软件开发之路上不断前行,最终成为行业专家。
|
3月前
|
机器学习/深度学习 人工智能 算法
技术成长之路:从新手到专家的心路历程
【8月更文挑战第9天】在技术的世界里,每个人都是从零开始。本文将通过个人经历,探讨如何在技术的海洋中不断学习和成长,最终成为领域内的专家。我们将一起回顾那些挑战与成就,以及它们如何塑造了一个技术人员的职业轨迹。
|
3月前
|
程序员 开发者
技术成长之旅:从新手到专家的蜕变之路
【8月更文挑战第8天】在技术的海洋中,每一位程序员都曾是一名初学者。本文将通过个人经历和行业观察,探讨如何从技术新手成长为领域专家的过程。我们将深入讨论持续学习、实践、反思、交流与创新的重要性,并分享一些实用的成长策略。无论你是刚刚起步的技术爱好者,还是正在追求更高成就的资深开发者,这篇文章都将为你提供宝贵的启示和指导。
|
11月前
|
监控 架构师 程序员
阿里技术专家撰写程序员“不迷茫”职业路指南,切中痛点规划未来
我一直都是一个“笨孩子”,但我不以笨为耻。小学三年级时要写一篇关于柑橘树的作文,那时自己肚子没货、下笔万难,父亲知道后教了我两招:是从 整体到局部观察事物;二是阅读,看看别人是怎样写的。
|
Cloud Native 数据可视化 前端开发
阿里高级技术专家:如何结构化地思考、做事、成长?
7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启!15位团队技术大牛在线招人,更有《阿里云技术面试红宝书》助你拿下Offer!马上投递简历:https://developer.aliyun.com/special/offerday01
阿里高级技术专家:如何结构化地思考、做事、成长?
|
Java 开发者
【Java开发者专场】阿里专家墨玖:淘票票工程师文化
谈到工程师文化,大家都会比较熟悉,或者比较向往。但是到底什么是工程师文化,应该怎么做是互联网企业应该关注的东西。本文将从四个部分介绍工程师文化,首先,工程师文化从何而来?其次,我们为什么需要工程师文化?还有工程师文化要达到什么目标,走向哪里?最后,工程师文化实施手段有哪些,怎么样落地?
3291 0
|
NoSQL 程序员
成长的足迹:阿里巴巴5位专家技术之路的思考与感悟
五四青年节之际,云栖社区特别邀请了5位阿里云技术/产品专家,来分享他们的#成长记忆#,每位专家将呈现出他们独一无二的人生经历、认识和感悟,希望能对大家有所帮助和启发。
|
Java 应用服务中间件 UED
阿里巴巴高级技术专家聊工程师思维
本文整理自至简在团队内部的个人分享,希望通过对工程师思维的分析和解读,让工程师能正确对待那些在现实工作中看上去与本职岗位无关,却对团队效能影响极大的一些点和一些事。
992 0