写点什么

到底什么是数据科学家?

  • 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:335295

评论

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

微服务 SpringBoot 整合 Redis GEO 实现附近商户功能

做梦都在改BUG

Java redis 微服务 Spring Boot

模块六作业

程序员小张

「架构实战营」

OneCode开源低代码引擎白皮书

codebee

低代码 开发工具 低代码平台 java UI

智能汽车商业化、产业化演进及投资机会分析

不脱发的程序猿

汽车电子 智能汽车商业化 汽车行业投资机会分析

Three.js 进阶之旅:物理效果-碰撞和声音 💥

dragonir

CSS JavaScript html 前端 three.js

入门数据分析师的最强秘籍,都在这4本书里!

博文视点Broadview

面试官:你来谈一下Synchronized-轻量级锁

做梦都在改BUG

Java synchronized 轻量级锁

5 步带你入门 GaussDB (DWS) 的 GDS 导入导出

华为云开发者联盟

数据库 华为云 企业号 2 月 PK 榜 华为云开发者联盟

软件测试/测试开发 | web自动化测试-执行 JavaScript 脚本

测试人

软件测试 自动化测试 测试开发 Web自动化测试 selenium

基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地

汀丶人工智能

自然语言处理 nlp 2月月更 2月日更 文本匹配算法

实现一个简单的Database10(译文)

GreatSQL

sqlite myslq greatsql greatsql社区

从实战出发,聊聊缓存数据库一致性

做梦都在改BUG

Java 数据库 缓存 一致性

飞桨框架v2.4 API新升级!全面支持稀疏计算、图学习、语音处理等任务

飞桨PaddlePaddle

paddle API 飞桨

宽表为什么横行?

王磊

OKR之剑·实战篇06:OKR致胜法宝-氛围&业绩双轮驱动(下)

vivo互联网技术

团队管理 OKR

面试官:如果 MySQL 数据库中的数据丢失,有哪些补救的办法呢?

做梦都在改BUG

Java MySQL 数据库

记一次SpringBoot启动优化实践

做梦都在改BUG

Java spring Spring Boot

Redis高级数据结构Stream和HyperLogLog

做梦都在改BUG

Java redis stream HyperLogLog

2023-02-14:魔物了占领若干据点,这些据点被若干条道路相连接, roads[i] = [x, y] 表示编号 x、y 的两个据点通过一条道路连接。 现在勇者要将按照以下原则将这些据点逐一夺回:

福大大架构师每日一题

算法 rust 福大大

明晚 8 点直播!OpenCloudOS 中的海光国密算法分析

OpenCloudOS

Linux

进击中的 Zebec 生态,Web2 与 Web3 世界的连接器

西柚子

中国工商银行签约易观千帆,夯实数字基石,助力用户价值增长

易观分析

金融 银行

Linux安装ElasticSearch

Geek_7ubdnf

Java elasticsearch

怎样快速地迁移 MySQL 中的数据?

做梦都在改BUG

Java MySQL 数据库

用这4招优雅的实现Spring Boot 异步线程间数据传递

小小怪下士

Java spring 程序员 springboot

面试官:分库分表,真的有必要吗?

做梦都在改BUG

Java 分库分表

分布式事务解决方案

Java 分布式事务 事务

ArkUI新能力,助力应用开发更便捷

HarmonyOS开发者

HarmonyOS

Java Map操作解锁新姿势

派大星

ChatGPT入门案例|商务智能对话客服(一)| 社区征文

TiAmo

AI ChatGPT

软件测试/测试开发 | Selenium多浏览器处理

测试人

软件测试 自动化测试 测试开发 selenium web测试

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