您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 大数据 > 正文

身为数据科学家,你必须要掌握这四大技能!

发表于:2018-02-01 作者:王梦泽、吴双、蒋宝尚编译 来源:大数据文摘

想成为一名高级数据科学家除了拥有卓越的专业技能,你还需要其它技能来拉近和业务经理的距离。这看起来简单,但随着每年新技术的不断累积,技术和业务之间的距离会继续增大。因此,我们发现管理者和数据科学家有清晰的合作方向是非常重要的。

业务和IT知识都是十分专业的,然而由于技能的专业化,许多企业都出现了两个专业间的空白。我们的任务是帮助填补它!

业务和IT知识都是十分专业的,然而由于技能的专业化,许多企业都出现了两个专业间的空白。我们的任务是帮助填补它!

数据科学家必须有技术方面的扎实基本功,这包括编程、查询、数据清洗等。然而随着数据科学家的成长,他们需要更多地关注设计决策以及与管理者的沟通,这会大大增强经验丰富的数据科学家的影响力。他们可以做出更高层次的决策,并帮助陷入困境的年轻数据科学家,而不是被困在日复一日的编码中。更有经验的数据科学家能利用他们的经验来做出简化复杂系统、优化数据流的设计决策,同时协助决定哪些项目最为恰当,这使得数据科学家自身及其公司都能有更大获益。

能够做到化繁为简

数据科学家往往希望将他们所知道的每一种技术和算法都应用于每一个问题的解决方案上。相应地,这就会使系统非常复杂难以维护。

数据科学确实需要复杂抽象的模型及大量的复杂技术(从Hadoop到Tensorflow)。在这个充斥着复杂性的领域,人们会倾向于开发复杂的系统和算法,稍不留神就会在开发中涉及四、五种不同的技术并使新的热门算法或框架。然而,像大多数涉及工程的其他领域一样,减少复杂性往往会带来诸多好处。

如果冯· 诺依曼,埃尔温· 薛定谔和爱因斯坦可以帮助我们理解数学和物理驱动领域的复杂性,那么我们数据科学家不能在复杂性背后。

如果冯· 诺依曼,埃尔温· 薛定谔和爱因斯坦可以帮助我们理解数学和物理驱动领域的复杂性,那么我们数据科学家不能在复杂性背后。

工程师的角色就是去简化任务。如果你曾经建造或看到过鲁布· 戈德堡机械(Rube Goldberg machine),你会理解什么是用复杂方法去完成简单任务。一些数据科学家的算法和数据系统看起来像是用胶带和口香糖粘起来的老鼠夹,而不是简洁有效的解决方案。更简单的系统意味着随着时间推移系统会更加容易维护,并且未来的数据科学家能够按需添加和删除模块。但若你使用三种不同的语言,两个数据源,十个算法且没有留下任何文档资料,未来的工程师可能会默默诅咒你哦。

简单的算法和系统也应使添加和删减模块是容易的。因此当需要技术进行改变和更新或者需要删除模块时,可怜的未来数据科学家不会陷入和你的代码一起玩叠叠乐积木游戏(Jenga)的困境 。但会纠结于“如果删了这段代码,系统会不会崩溃”。(这一纠结的根源是怕出现技术债务)

知道如何在没有主键的情况下关联匹配数据

强大的数据专家能做的重要工作之一是:将可能没有主键或明显联系的数据集关联在一起。数据可以呈现人之间或业务之间的日常交互。能够在这些数据中找出统计模式,是数据科学家可以帮助决策者作出明智决定的重要能力。然而,你想要关联在一起的数据并不总是位于相同的系统或有着相同粒度。

与数据打交道的人会知道,数据并不总是很好的整合在一个数据库中。比如,财务数据与IT服务管理数据通常是分开存放的,外部的数据源往往可能并不是在同一个维度进行的聚合。这会成为一个问题,因为找出数据中的价值有时确实会需要来自其他部门或系统的数据。

数据啮合是需要在相同的粒度级别上进行的。一种理解的方式是:将一块大拼图与由许多小块数据拼图组成的大拼图组合起来。

数据啮合是需要在相同的粒度级别上进行的。一种理解的方式是:将一块大拼图与由许多小块数据拼图组成的大拼图组合起来。

例如,假如给你提供了医疗保单、信用卡和社区犯罪率的数据,想由此找出这些社会经济因素如何影响病人,你会怎样处理?一些数据可能是以人为单位,而另一些数据可能是街道或城市级别,而且没有明确的方式来关联这些数据集。最好的处理方式是什么?这成为了一个不能忽视且必须被解决的问题。

对项目进行优先排序

作为数据科学家,你需要知道如何解释可能不划算的项目的投资回报率(ROI)。这与良好的直接沟通有关(我们的团队永远不会停止讨论如何沟通),也与能够清楚表达价值并且对长短期目标进行优先排序有关(重申一遍,说起来容易做起来难)

团队总是会有超出他们处理能力的过多的项目和项目要求。有经验的团队成员需要起带头作用来帮助决策者决定哪些项目是值得进行的。在有很大机会成功但可能不会有最高投资回报率的短期项目和很有可能会失败但同时也会产生较大投资回报率的长期项目之间需要有一个良好的平衡。

这种情况下,决策矩阵会有助于简化过程。

经典的决策矩阵之一是一个2*2矩阵,行和列分别为重要性和紧迫性。多数的大学商业课程中都会出现这种矩阵,它很简单,这也是它很棒的原因。

我曾在公司和一些很聪明的人共事,但还是工作中的每个项目都被列为优先。如果你没听过这个说法,我会在这里讲出来:

如果每件事都被优先考虑,那么,相当于没有事情被排在优先。

选择正确的项目意味着必须做出取舍。不是所有的事情都是高优的。

选择正确的项目意味着必须做出取舍。不是所有的事情都是高优的。

许多公司都存在这个问题,这就是为什么对于数据科学家团队中有经验的成员,能够清晰表达出哪些项目需要当下执行还是以后执行是非常重要的。而使用这个简单的矩阵能带来一定帮助。

(简洁十分重要,使用矩阵来明确投资回报率是有帮助的)。

有了简明直接的沟通,项目继续向前推进,信任也随之建立起来了。

能够开发出稳健且最优的系统

做出能在受控环境中操作的算法或模型是一回事。将稳健模型集成到实时且能处理大量数据的系统又是另一回事。根据公司的不同,有时数据科学家只需开发算法本身,之后开发人员或机器学习工程师会负责将其转为上线的产品。

然而还会有其他的情况,小的公司和小的团队可能会需要数据科学家团队来将代码转为上线产品。这意味着算法需要能以合理的速度控制数据流量。如果算法要运行三个小时并且需要被实时访问,这显然不能在产品上使用。因此,良好的系统设计及优化是必要的。

随着数据增多,越来越多的人会与系统交互,模型跟上脚步是十分重要的。

随着数据增多,越来越多的人会与系统交互,模型跟上脚步是十分重要的。

当高级数据专家的技术能力和其他能力相结合时,才能对他们自身和其公司产生最大的影响。数据科学家宝贵的经验是非常有价值的,这些经验能够指导年轻的开发人员做出更好的设计决策,帮助管理者找出哪些项目会带来最好的投资回报率,从而也放大了他们的参与对于团队的影响。