身为数据科学家怎么能不掌握这四大技能!
作者:CQITer小编 时间:2018-02-21 01:01

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

业务和IT知识都是十分专业的,然而由于技能的专业化,许多企业都出现了两个专业间的空白。我们的任务是帮助填补它!
数据科学家必须有技术方面的扎实基本功,这包括编程、查询、数据清洗等。然而随着数据科学家的成长,他们需要更多地关注设计决策以及与管理者的沟通,这会大大增强经验丰富的数据科学家的影响力。他们可以做出更高层次的决策,并帮助陷入困境的年轻数据科学家,而不是被困在日复一日的编码中。更有经验的数据科学家能利用他们的经验来做出简化复杂系统、优化数据流的设计决策,同时协助决定哪些项目最为恰当,这使得数据科学家自身及其公司都能有更大获益。
能够做到化繁为简
数据科学家往往希望将他们所知道的每一种技术和算法都应用于每一个问题的解决方案上。相应地,这就会使系统非常复杂难以维护。
数据科学确实需要复杂抽象的模型及大量的复杂技术(从Hadoop到Tensorflow)。在这个充斥着复杂性的领域,人们会倾向于开发复杂的系统和算法,稍不留神就会在开发中涉及四、五种不同的技术并使新的热门算法或框架。然而,像大多数涉及工程的其他领域一样,减少复杂性往往会带来诸多好处。

如果冯•诺依曼,埃尔温•薛定谔和爱因斯坦可以帮助我们理解数学和物理驱动领域的复杂性,那么我们数据科学家不能隐藏在复杂性背后。
工程师的角色就是去简化任务。如果你曾经建造或看到过鲁布•戈德堡机械(Rube Goldberg machine),你会理解什么是用复杂方法去完成简单任务。一些数据科学家的算法和数据系统看起来像是用胶带和口香糖粘起来的老鼠夹,而不是简洁有效的解决方案。更简单的系统意味着随着时间推移系统会更加容易维护,并且未来的数据科学家能够按需添加和删除模块。但若你使用三种不同的语言,两个数据源,十个算法且没有留下任何文档资料,未来的工程师可能会默默诅咒你哦。
简单的算法和系统也应使添加和删减模块是容易的。因此当需要技术进行改变和更新或者需要删除模块时,可怜的未来数据科学家不会陷入和你的代码一起玩叠叠乐积木游戏(Jenga)的困境 。但会纠结于“如果删了这段代码,系统会不会崩溃”。(这一纠结的根源是怕出现技术债务)
知道如何在没有主键的情况下关联匹配数据
强大的数据专家能做的重要工作之一是:将可能没有主键或明显联系的数据集关联在一起。数据可以呈现人之间或业务之间的日常交互。能够在这些数据中找出统计模式,是数据科学家可以帮助决策者作出明智决定的重要能力。然而,你想要关联在一起的数据并不总是位于相同的系统或有着相同粒度。
与数据打交道的人会知道,数据并不总是很好的整合在一个数据库中。比如,财务数据与IT服务管理数据通常是分开存放的,外部的数据源往往可能并不是在同一个维度进行的聚合。这会成为一个问题,因为找出数据中的价值有时确实会需要来自其他部门或系统的数据。

数据啮合是需要在相同的粒度级别上进行的。一种理解的方式是:将一块大拼图与由许多小块数据拼图组成的大拼图组合起来。
例如,假如给你提供了医疗保单、信用卡和社区犯罪率的数据,想由此找出这些社会经济因素如何影响病人,你会怎样处理?一些数据可能是以人为单位,而另一些数据可能是街道或城市级别,而且没有明确的方式来关联这些数据集。最好的处理方式是什么?这成为了一个不能忽视且必须被解决的问题。
对项目进行优先排序


