攻克大数据——「数据科学家」的八种技能(下)
继:攻克大数据——「数据科学家」的八种技能(上)
基本工具
无论哪一类公司,统计程式语言如 R 或 Python,以及数据库查询工具像 SQL 大概都是数据科学家必备的常识。
基础统计学
对统计起码要有基本认识,才称得上及格的数据科学家,一名拥有许多面试经验的人资说,很多他曾面试的人连 p-value 的定义都讲得不清不楚。你应该熟悉统计测试、分布、最大似然法则(maximum likelihood estimators)等等。机器学习也很重要,但更关键的能力,是你能否判断不同状况该用什么不同的技术。统计学适用於所有类型的公司,但对那些主要产品并非数据、却大幅依赖数据的公司来说尤为必备能力,老板需要的是你能不能利用数据帮助他们进行决策,以及设计、评估实验与结果。
机器学习
假如你是在握有大量数据的大型企业,或是产品本身就是以数据为卖点的公司工作,机器学习就是你用来吃饭的家伙。虽然 KNN 演算法(k-nearest neighbors)、随机森林(random forest)、集成学习(ensemble methods)这类机器学习的流行术语好像不懂不行,不过因为事实上很多技术都可以用 R、Python 程式库解决,所以即使你不是演算法的世界顶尖专家,并不代表就毫无希望。比较重要的是,能够纵观全局,每种状况出现都能找出最契合的技术。
多变量微积分、线性代数
就算你即将面试的公司并未要求机器学习或统计学知识,基础多变量微积分与线性代数问题十之八九都是逃避不了的必考题,因为数据科学就是由这些技术型塑而成。尽管很多事情可以交给 sklearn 或 R 自动执行,但是未来如果公司想要建立自有的方案,这些基本知识就变得很重要了。如果你置身於「数据就是产品」,或者预测绩效仅因小小进步或演算法优化就能带来惊人效益的公司里面,微积分、线性代数等数学概念都需了解通透。
清理数据
Data Munging 是最容易令人不耐的过程,你面对的是乱七八糟的数据。这些数据包含消失的数值、不一致的字串格式(比如「New York」与「new york」与「ny」)、数据格式(「2015-03-26」、「03/26/2015」,「unix time」、「timestamps」等等),必须劳心费神梳理这些庞杂的数据。虽然这工作吃力不讨好,但只要是数据科学家,大概都避免不了,而如果你是某家小公司的先遣数据科学家,或是在一家产品非与数据相关,但是数据却扮演重要角色的公司里工作,清理数据的任务格外重要。
数据视觉化与沟通
把枯燥繁琐的数据转成图像,以及向外界沟通的技能愈来愈重要,尤其是在年轻的公司制定由数据驱动的决策,或者协助其他组织进行数据决策的公司。「沟通」二字的真谛在於,面对技术人或一般人,你都能准确的传达研究发现,并能让他们轻易理解。至於视觉化,如果可以熟悉 ggplot、d3.js 等软体的运用,会有很大的助益,当然工具只是表象,能否参透数据视觉化的原则,才是最需费心的地方。
软件工程
如果你是公司数据科学团队的草创元老,拥有强悍的软体工程背景十分重要,你会负责处理很多数据登录(data logging),也有可能需要参与开发以数据为本的产品。
像个数据科学家般思考
所谓数据科学家,就是你解决问题的方法奠基於数据数据。在面试过程中,主考官可能会出一些比较艰涩的问题,比如公司想要执行的某个测试,或者计划开发的数据产品。判断事情的轻重缓急、作为数据科学家如何与工程师和产品经理互动、知道该用什么方式解决问题,都是你该培养的能力。