HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

到底什么是数据科学家?

  • 2017-03-02
  • 本文字数:5867 字

    阅读完需:约 19 分钟

随着“数据驱动”的价值越来越明显,越来越多的企事业开始组建或扩大数据分析队伍,“数据科学家”这个职位也越来越被大家关注。

–“数据科学家”是不是“统计师”更性感的版本?

–起码得有统计、应用数学、计算机的背景?

–干了 5 年的软件开发,写 SQL 如反掌观纹,换行做数据科学家很容易吧?

–我们市场部也想更加“数字化”,但不懂编程,应该如何起步?

经历了一些不同阶段的大数据项目之后,我意识到,在“数据科学家”这个角色没定义好之前,“数据化”会遇到很多挑战。这个角色的定义相当模糊,造成很多混淆–很像对“数字化”本身的混淆。

我翻阅了一下招聘网站上数据科学家的职责,有的专门通过统计和机器学习来建立预测模型,有的定义则更加宽泛。那么到底“数据科学家”具备什么样的技能,能做哪些事?很多希望实现“数据驱动”的企业对数据科学家的期望比较笼统,并且在不断修正中,这很正常,那么,怎样才能更好地为这一职位做好准备?

网上已经有很多种答案,本文并不想提出新的诠释,而是尽量将最主流的观点提供给大家,并结合现有的技术,为有志于成为数据科学家的朋友,提供建议。

定义一:数据科学家起码是统计师

“数据科学家是对统计师更性感的称谓” -Nate Silver

Nate Silver 是个著名的统计师,凭借 2008 年美国总统竞选中,成功地预测了所有 50 个州里的 49 个州竞选结果,而一战成名,并被《时代周刊》评为 2009 年度最有影响力的 100 人之一。

他说:“数据科学家是对统计师更性感的称谓。…,数据科学家(这个称谓)有点多余,人们不应该批评“统计师”这个词”。

不过,数据本身在变化——越来越多,越来越快,种类越来越丰富,统计师们用以前的办法难以应对,所以数据科学家至少是比统计师们更善于编程的那些人。

定义二:数据科学家用编程和统计,将数据更有用

随着数据分析和业务需求的发展,以及分工的细化,这个称谓也在逐渐演化。 比如,Pandora 的研究部门负责人 Michael Hochester 是这样定义数据工程师的:

“数据科学家是一些能综合运用编程和统计技术的人,他们致力于通过各种方式让将数据更发挥作用。”

他认为数据科学家分为两类: (参见"What is data scientist"一文)

A 类: 分析型

主要像统计学家那样,进行静态的数据分析,并能清洗数据。他们用不同办法处理较大的数据集,可视化,非常熟悉某个领域,能很好解读数据等等;

分析型数据科学家也能通过写代码来处理数据,但不像工程师那样专业。他们更擅长实验设计,预测、建模、统计推断和其他统计工作。结论会更直白,而不是像 P 值和置信区间那么学术化。提炼出简洁有力的结论,并传达给其他人,是数据科学家常常被低估而异常重要的职责之一。

B 类: 搭建型

除了统计知识之外,搭建型数据科学家编程很强,关注于用在线生产数据搭建模型,并和其他系统连接,实现自动更新结果、或自动和用户互动,比如推荐系统(产品、你认识的人、广告、电影、查询结果等等)。

一个好的分析师具备哪些特点?

我最喜欢这个问题,网上的答案也五花八门。 有推荐一大堆技术的,有一大堆统计名词的。 Monica Rogati 的答案值得回味:她在《一个好的分析师由哪些条件组成?》里提出四点:

1. 务实

技术和模型是否最优,远不如所带来的影响更重要。 几个星期的工作,是否能为公司带来相应收益,结论能带来多大的改变? 务实,意味着在开始之间搞清楚:1)可能的,和最有可能的结果;2)所需的时间、人力和资源。

花几个星期研究一个新算法,甚至学一个新技术,很能带来成就感。但对公司来讲,是不是真的比一个基于简单的启发法 (Heuristics) 的结论有用得多? 不考虑机会成本,就可能纠结于一个最多能带来 2% 提升的难题,而忽略了能带来 20% 提升的课题。

所以,当产品经理跟你讲:“能不能帮忙把 xxx 产品今年的数据帮我汇总一下”,一定要问问用途,比如“为啥需要啊?”,“想看哪方面?”,对方也许关心渠道增长,或者想进行捆绑营销。不清楚目的,而一头扎进各种报表,不仅费时费力,而且结论的针对性和深度有限。

2. 好奇

数据分析有点像侦探工作。 重大发现都是从蛛丝马迹开始,看似无关的线索可能有深藏其后的关联。追,可能能获得重要的洞察,不追……也没人怪你。线索 = 数据,多种来源、不同规范程度的数据。80% 的精力都会耗费在提取、清理和规范数据上,所以,缺乏好奇心,就很难坚持追下去,而最终真相的价值可能超过最新最酷的机器学习算法。

3. 技术和解决问题的能力

技术、能力和业务知识,缺一不可。

技术意味着对统计、算法和软件工具的熟悉。 并不非要有统计学的硕士学位,但起码得明白最小二乘法之类的基本统计方法和如何解读结果。

能力意味着能解决实际问题,能坚持不懈地用各种技术进行探索,灵活地编程,使用命令行,对不同数据源进行清洗、转换, 应用不同的算法和模型。 计算机学位也不是必须的,实际上很多技术侠连正式的计算机课程都没修过。

业务知识是指和具体领域、公司或部门相关的背景知识。比如分析医疗设备数据时,如果了解哪些耗材配套哪些设备? 哪些医院科室常做哪些检测?就可以更明智地使用数据。

没人能对所有这些都熟悉。好在信息时代让学习变得更加简单。最快的途径是边做边学,比如自己做些小项目,并跟着有经验的数据科学家学习。不同的公司所看重的技术、工具、业务知识也不同。 很多公司非常看重统计学基础,比如提供网络游戏和社区的 Twitch 的数据科学家 Brad Schumitsch谈到

“在 Twitch, 我们的数据科学团队由三部分组成:统计、编程和产品知识。 我们从来不招统计学不强的人。你可以是个很强的程序员,但如果不懂贝叶斯定理, 我只能建议你去我们工程部。”

所以,不同企业或不同阶段,对技术、能力和业务知识这三方面的侧重不同。 Google 的数据科学家可能有博士学位,对计算机和数学很有研究。电商领域的同样岗位可能对电商非常熟悉,却不一定经过正式的数学或计算机培训。

4. 沟通能力

能不能把复杂的概念阐述得言简意赅,而不用专业术语? 能不能几秒钟之内就做一个简明扼要的图? 能不能忍住不把所有前提、场景、局限性都一股脑倒出来,来保证结论的绝对正确?

是不是觉得可视化和简洁的结论只是给不懂技术的人,或者不如你聪明的人看的?

我的大数据导师老丁曾是惠普全球运营报表部门的老大,当时我负责此平台开源后的市场工作。宣传资料做了两版之后,老丁扔过来一句话“太技术”,等到第三版,老丁急了,扔过来一本乳品生产企业的宣传册,说“按这办”。“乳品”vs“数据库”,我有点懵…老丁是 80 年代放弃成为第二批计算机学科院士的机会,毅然投入美帝数据库一线工作几十年的老 IT 了,那全局观,那思路,不可能错啊。

N 个月之后,我明白了。 宣传也好,数据科学家也好,有一点是相同的:我们的结论不应只追求正确,更重要的是简洁。让别人彻底明白,才有可能及时促成行动。

这个过程责任重大,所涉及到的前提、场景和局限性都很重要,但应先等一等,不能一股脑抛给你的听众。它们终究会被简化掉,由数据科学家主动去简化,不比被以后的人随意简化强吗?

如何成为数据科学家?

数据科学家的收入和职业前景不错,那么如何才能找到一份数据科学家的工作? 另一个相近的版本是,很多企业建立内部数据科学部门的时机也逐渐成熟,如何培养内部人员成为数据科学家? 网上能找到不少关于数据科学家方方面面技能的教程、课程或视频,包括分析方法、开源工具、编程语言等。如果英文较好,还能从 InfoQ、Quora、StackOverflow 等获得不少国外大牛的指点。不过许多攻略都是这样:1)你需要 A、B、C、D 这些技能;2)这里是链接。Python 的链接在这,R 的链接在那,机器学习的视频在最下面,再去安个 Hadoop 和 SPARK。 这是最常见的学习方式,但很费时费力,效果没那么好。 很多培训用的是处理过的规范数据,演示效果很好,但现实却不太一样。 实际上,大家更认可“边干边学”的效果,可是在找到数据科学家的工作之前,怎么才能得到“干”的机会? Monica Rogati 的《How Can I become a data scientist》和Tomi Mester 的《 How to get your first job in Data Science 》都提出了很好的方法。

第一步 四种工具

如果你想从最基础开始,有四种工具比较常用。这些工具都是免费的,Tomi Mester 提供了一个英文的攻略

- Bash 和命令行;

- Python

- SQL

- R

- 有时需要 Java

一般来说,不同的公司会选用其中两到三种。好消息是,一旦学会一种,学其他的也很快。 总共花一两周,选其中两三种掌握基本使用,就可以进入下一步。

Tomi 的攻略需要安装和连接到云上的虚机。这些服务国内众多的云服务商都能提供,可以直接选国内的即可。 具体的安装,如果自己不熟悉,也可以请朋友帮忙,不一定要花太多时间。

第二步 先定个小目标,比如动手做几个小项目

亲手做些项目,不仅是最快最有效地的学习办法,而且能让你的简历更引人注目,在面试时加分不少。

选个感兴趣的题目

结合可以找到的数据,选选自己感兴趣的题目,比如空气质量、气候变化、民航运输、旅游、医疗支出等等。网上有不少数据可以免费或者很便宜地下载。除了国内数据,一些美国网站上也有很多世界范围的公众数据,比如天气、各国经济、疾病、自然灾害等等。 常用的网站有国家统计局(“国家数据”)、美国政府公开数据 Data.gov 、Kaggle 比赛的数据集世界数据图册 CEIC 证监会新浪财经 AWS 公用数据集数粮、机器学习的 UCI 数据集等等。 如果是公司支持的项目,还可以从公司 IT 部门拿到数据。 重要的是,应该从容易上手的项目做起,找到数据,争取一周之内得出结果。

发个微博或微信,看看反映

在动手分析之前,先大概看看数据,把你想做的项目和初步印象用一两句话,在微博和微信上看看大家的反应。既要现实一点(能在一个星期内做出结果),又要保持乐观(相信自己能做出来,能找到些有趣的结论)。猜想一个可能的结果,不一定很准确(甚至可以编编),并邀请大家反馈,比如 Monica Rogati 曾经这么发微博:

“我用 LinkedIn 数据研究创业者,发现他们比想象的老,学物理的比学护理或神学的多。也许是因为风投们很难投一个新的宗教吧?”

“我用Jawbone 的数据研究天气对运动的影响–纽约人没有加州人那么容易受天气变化的影响,你们觉得是因为纽约人更强,还是他们主要在室内运动?”

“我结合BBC 的讣告和维基,来看看 2016 这一年对名人来讲,是不是真的很衰。”

如果你想学习某种技术的话,还可以这么写,比如:

Shelby Sturgis :“我为老师和管理者做了个 Web 应用,通过分析学校排名、考试分数的变化和不同科目的成绩,来帮助他们提高教育质量。我用了 MySQL、Python、Javascript、Highcharts.js 和 D3.js, 来存储、分析和展示加州 STAR 考试数据。”

“我用了 TensorFlow 来自动对黑白照片上色和还原,帮奶奶做了这个拼贴图–最棒的圣诞!”

想象自己在交流会和面试里反复介绍,刊登在《今日美国》或《华尔街日报》上。你会觉得无聊,难以讲清还是觉得自己聪明,并感到自豪?如果答案是否定的,就重新再找,或者回到上一步,直到找到 2-3 个信服的想法。 问问其他人–这个有意思吗? 你愿意面试做这个的人,来做数据分析的工作吗?

除了找数据和粗略地了解相关的技术和工具,此时你还没有写任何代码,或者做任何具体分析。你可以很方便地多次重复这个阶段,而不要太着急地一头扎进某些教程或者课程,花几个月时间毫无所获。

开始干

分析数据。清洗。绘制图表。重复。看看每个字段常见的前十个值。研究一下异常值。看看分布情况。如果数据不是很零散,可以把类似的值分组。分析相关度,处理缺失的数据。尝试不同的聚类和分类算法。调试。找找为什么有的效果好,有的不好? 如果数据多的话,搭建 AWS Data Pipeline。对非结构化数据尝试用不同的 NLP 库。可能会用到 Spark,numpy, panda, nltk, 矩阵分解和 TensorFlow。这些技术不是为了学而学,而是因为解决问题必须用到。

找个懂统计学、软件工具或业务分析的朋友,会有很大帮助。每周花一个小时或每两周聚一次,都会很快帮你理顺思路,或者解决实际问题。

做个侦探,提出新的问题和新的方向。数据的收集方式是否合理? 引入另外的数据集会怎么样?这应该是个有趣的过程,偶尔遇到障碍时,可以向网上、论坛、老师或做相同工作的朋友求助。 如果感觉不好玩,就重新找个题目。如果感觉很差,就重新思考要不要当数据科学家。如果这部分不能让你充满干劲,你很难坚持和干好真实数据工作中占 80% 的乏味的苦活。

表达

用简单的语言和干净、说服力强的图表来一目了然地表达。 学会用可视化工具非常重要。 如果你建了个原型,可以做一个简洁、有趣的演示或视频。把技术细节和代码放在链接里。发出去,并收集反馈。公开展示能让你提高标准,得到高质量的代码、表达和图形结果。

重复这一过程,逐渐就能形成自己的项目集,给招聘人员看,直到加入梦寐以求的团队。

有没有捷径?

很多朋友从事市场、财务等工作,不具备统计学背景,更没有编程经验,如何转向数据科学?

2016 年底,一个朋友带给我一个很典型的场景:她在一家医疗仪器公司,负责市场工作,积累了不少的数据,包括客户、销售、产品等方面,分别来自于 CRM、财务和产品管理系统。最大的表 100 多 G,维度也比较全面。公司希望能培养自己的数据科学家,她也很感兴趣,问题是,如何开始?

一般来说,如果对 Excel 的统计函数(如 sum, sumif, count, 时间转换等),vlookup 和数据透视表比较熟悉,可以从可视化工具入手。如果公司有预算,可以考虑 Tableau,Power BI 等;也可以选用国内帆软、魔镜等。 Tableau 的教学视频比较系统,很容易从 0 基础开始。

同时可以快速翻阅几本经典书,包括《深入浅出数据分析》、《统计学》、《R 语言实战》、《深入浅出 Python》等。对数据分析本身的使命、基本概念、常见方法等获得总体了解,能让你更快地找到自己的目标,为自己的项目整理思路。

同样重要的,要以自己的项目为主线,限定期限,避免为技术细节,扎到浩瀚的资料里。遇到问题再去 Quora、知乎、Stackoverlow、微信群和相关工具的论坛问问题,项目进展会快得多,有时候几分钟就会有人给你答案。 做完第一个项目之后,再逐渐用更复杂的指标、算法或工具,再用一两周时间做出下一个项目,以此类推。

即使完全没基础,也不用担心。花点时间看看上面提到的书或可视化工具的教学视频,大概了解数据分析的基本概念和方法,你就可以开始选自己的题目,开始探索数据科学家的星辰大海,迎接崭新的未来。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-02 16:335157

评论

发布
暂无评论
发现更多内容

oeasy教您玩转linux010108到底哪个which

o

oeasy教您玩转linux010109clear清屏

o

央行数字货币钱包上线后又秒关 兑换了的 DCEP 别担心

CECBC

数字货币 央行

SpringBoot+Tess4j实现牛逼的OCR识别工具

小隐乐乐

架构师训练营第十二周总结

张明森

翻转链表算法、自动化测试框架robot-framework、两款iOS 在手机端debugging 工具Flex、啄木鸟、加密技术 高可用系统的度量 高可用系统的架构 高可用系统的运维 John 易筋 ARTS 打卡 Week 15

John(易筋)

ARTS 打卡计划 高可用系统的架构 翻转链表 自动化测试Robot 手机调试工具Flex

pandas ~基础pandas

南辞

Python

【读书笔记一】《企业IT架构转型之道-阿里巴巴中台战略思想与架构实战》

Man

中台 阿里 中台战略

面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》

小傅哥

Java 数据结构 面试 小傅哥 linkedlist

大事情!中国限制 AI 算法出口。网友:这是要阻止XX“下跪”

程序员生活志

图解Node(上)——直击灵魂的十条拷问

执鸢者

大前端 原理 Node

【持续更新~】常遗忘却可以变更好的心态

01Running

个人成长

JVM的早期优化与晚期优化

Edison

JVM JVM虚拟机原理

你真的懂 Java 的 main 方法吗

Rayjun

Java

ARTS打卡 第14周

引花眠

微服务 ARTS 打卡计划

小小的分页引发的加班血案

架构师修行之路

架构

Flink检查点、保存点及状态恢复-13

小知识点

scala 大数据 flink

基于区块链的社会治理探索

CECBC

区块链 大数据 信息技术

Ray 分布式计算框架详解

lipi

分布式 数据湖 pandas Apache Arrow

架构师第十二周学习总结

傻傻的帅

程序的机器级表示-控制

引花眠

计算机基础

LeetCode 5. Longest Palindromic Substring

liu_liu

算法 LeetCode

麦叔告诉你,Linux下安装nginx都踩了那些坑

麦洛

nginx Linux

软件产品的创新与宇宙奇点大爆炸

常平

方法论 产品思维 架构思维

30年技术积累,技术流RTC如何成为视频直播领域的黑马?

华为云开发者联盟

云计算 AI 5G RTC 华为云

架构师训练营第十二周作业

张明森

k8s-client-go源码剖析(二)

远鹏

Kubernetes 源码剖析 Go 语言

比特币挖矿到底挖的是什么?

CECBC

比特币 区块链 数字货币

ARTS Week14

时之虫

ARTS 打卡计划

雪花算法把玩

ElvinYang

高并发系统三大利器之降级

root

到底什么是数据科学家?_大数据_杨旸_InfoQ精选文章