大数据开发是做什么的?众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家。明显缺乏清晰的录取标准和工作内容。即使在2017年,数据科学家这个岗位的依然显得“既性感又暧昧”。
1. 什么是数据科学家?“科学家”是否言过其实?
数据科学家成为了一个跨学科职位。我将数据科学家定义为: 能够独立处理数据,进行复杂建模,从中攫取商业价值,并拥有良好沟通汇报能力的人。
关于数据科学家这个岗位怎么来的,说法不一。我自己的理解是随着机器学习和更多预测模型的发展,数据分析变得”大有可为”。为了区分拥有建模能力的高端人才和普通商业分析师/数据分析师(data analyst),数据科学家这个职位自然就产生了。通过这个新岗位,行业可以与时俱进的吸收高端人才。在机器学习没有大行其道,也没有大数据支撑之前,这个岗位更贴近统计科学家(statistician),和研究科学家(research scientist)也有一点点相似。
2. 数据科学家的日常工作内容包括什么?
我最近在和朋友闲聊时,惊讶的发现大家的工作内容都很相似。主要包括:
2.1. 分析数据和建模
此处的工作特指根据客户需求,从数据中攫取商业价值,而这个过程中一般都会涉及统计模型(statistical learning)和机器学习模型(machine learning)。如果在数据没有处理的情况下,我们的工作偶尔也涉及清理数据。有时候我们反而希望数据是未经过处理的,因为很多重要信息都在被处理中遗失了。
2.2. 与团队其他成员的沟通
与纯粹的机器科学工程师不同,数据科学家的重要工作内容是交流沟通。如果无法了解清楚客户的需求是什么,可能白忙活一场。如果无法了解数据工程师在采集数据时的手段,我们使用的原始数据可能有统计学偏见。如果不能讲清楚如何才能有效的评估模型,负责在云端运行模型的工程师可能给出错误的答案。因此,数据科学家除了建模必须亲手来做以外,其他的环节可以“外包”给别人。在数据量特别大的时候,这个需求变得更为明显。
2.3. 开会/汇报/写报告
良好的沟通能力不仅仅是指和团队成员的沟通,向老板和客户的汇报也很考察数据科学家的能力。作为一个数据科学家,我们一般有几个原则:
汇报时避免“黑话”,避免给不同背景的老板和客户造成疑惑。
直击重点而不炫技。尽量简明扼要,不要过分介绍模型的内部构造,重心是得到的结论。
实事求是不夸大模型能力。很多机器学习模型其实都已经不同程度过拟合,不刻意避开交叉验证而选择“看似表现良好的”过拟合模型。
从人事部门收集数据,清楚的告诉他们我需要的数据时间跨度,变量。并和法务部门一起将数据中的隐私部分去除。进行数据预处理,建模并评估。
3. 对于数据科学家的一些感悟
数据科学家是个听起来非常“性感的”的岗位,别忘了我们小时候的梦想都是成为一个科学家。但抛开这些虚的东西,我们必须认清这个岗位的核心就是将很多技能封装到一个人身上。而我们工作的正常开展少不了其他同事的支持和帮助,所以千万不要看不起别人的工作内容。没有数据工程师进行数据采集,没有分析师帮我们美化图表和提出质疑,我们无法得到最好的结果。
数据分析项目一直都是众人拾柴火焰高,没有人可以当超人。所以在得到这样“高薪性感”的职位后,我们更应该把心装回肚子里,脚踏实地。
4. 如何成为一个合格的数据科学家?
假设你已经有了基本的从业资格:即有相关领域的学位,掌握了数据分析和建模的基础能力,也懂得至少一门的分析语言(R或Python)和基本的数据库知识。下面的这些小建议可以帮助你在这条路上走的更远。
像我在另一个机器学习面试回答[4]中提到过的,保证对基本知识的了解(有基本的广度)是对自己工作的基本尊重。什么程度就算基本了解呢?以数据分析为例,我的感受是:
对基本的数据处理方法有所了解
最后想不恰当的引用一句西方谚语:“欲戴王冠,必承其重。”在这个数据为王的时代里面,成为优秀的数据科学家不仅仅代表着高薪,还代表着我们对于这个时代的贡献与价值。然而道路阻且长,还有太多太多需要我们学习和完善的方向。