如何成为一名数据科学家?

我自己粗浅的理解为需要以下几个方面:
1. 业务知识
2. 数理统计和数据分析
3. 计算机相关知识
3.1 数据处理与收集(ETL?)
3.2 机器学习和数据挖掘
这几方面完全是自己的一个猜测,恳请大牛们不惜赐教!
已邀请:

安之若素

赞同来自: min candy

"Data Science = statistics who uses python and lives in San Francisco"

恰好我马上启程到Twitter的data science team,而且恰巧懂一点点统计和住在旧金山,所以冲动地没有邀请就厚脸回答了:D

我认为有几个大方面

1)学好python。
现在几乎所以公司的数据都可以api给你,而python的数据处理能力强大且方便。加之在machine learning的很多算法上,python也独俏一方。另外,它的简明方便迅速迭代开发,15分钟写完个算法就可以看效果了。

除此之外,py还有点酷酷的感觉。任何程序拿matlab和c++都是可以写的,不过我真没认识过哪个d愿意自己把自己扔那个不酷的框框里:D

对不规则输入的处理也给python一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要

1.分词,分句
2.提取特征
3.整理缺失数据
4.除掉异类(outlier)

在这些时候,python可谓是神器。这里做的1-4都可以直接在scikit-learn里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。

简而言之,对于数据科学面临的挑战,python可以让你短平快地解决手中的问题,而不是担心太多实现细节。

2)学好统计学习
略拗口。统计学习的概念就是“统计机器学习方法”。

统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的prediction而已。因此这两个学科又开始重新融合。

为什么统计学习很重要?

因为,纯粹的机器学习讲究算法预测能力和实现,但是统计一直就强调“可解释性”。比如说,针对今天微博股票发行就上升20%,你把你的两个预测股票上涨还是下跌的model套在新浪的例子上,然后给你的上司看。

Model-1有99%的预测能力,也就是99%的情况下它预测对,但是Model-2有95%,不过它有例外的一个附加属性——可以告诉你为什么这个股票上涨或者下跌。

试问,你的上司会先哪个?问问你自己会选哪个?

显然是后者。因为前者虽然有很强的预测力(机器学习),但是没有解释能力(统计解释)。

而作为一个数据科学家,80%的时间你是需要跟客户,团队或者上司解释为什么A可行B不可行。如果你告诉他们,“我现在的神经网络就是能有那么好的预测力可是我根本就没法解释上来”,那么,没有人会愿意相信你。

具体一些,怎么样学习统计学习?

如果你感觉自己是一个二吊子数据科学家(我也是)那么问一下下面几个问题,如果有2个答不上来,那么你就跟我一样,真的还是二吊子而已,继续学习吧。

为什么在神经网络里面feature需要standardize而不是直接扔进去
对Random Forest需要做Cross-Validatation来避免overfitting吗?
用naive-bayesian来做bagging,是不是一个不好的选择?为什么?
在用ensembe方法的时候,特别是Gradient Boosting Tree的时候,我需要把树的结构变得更复杂(high variance, low bias)还是更简单(low variance, high bias)呢?为什么?

如果你刚开始入门,没有关系,回答不出来这些问题很正常。如果你是一个二吊子,体会一下,为什么你跟一流的data scientist还有些差距——因为你不了解每个算法是怎么工作,当你想要把你的问题用那个算法解决的时候,面对无数的细节,你就无从下手了。

说个题外话,我很欣赏一个叫Jiro的寿司店,它的店长在(东京?)一个最不起眼的地铁站开了一家全世界最贵的餐馆,预订要提前3个月。怎么做到的?70年如一日练习如何做寿司。70年!除了丧娶之外的假期,店长每天必到,8个小时工作以外继续练习寿司做法。

其实学数据科学也一样,沉下心来,练习匠艺。

3)学习数据处理
这一步不必独立于2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用80年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的80年代数据集上,为什么不自己搜集一些呢?

开始写一个小程序,用API爬下Twitter上随机的tweets(或者weibo吧。。。)
对这些tweets的text进行分词,处理噪音(比如广告)
用一些现成的label作为label,比如tweet里会有这条tweet被转发了几次
尝试写一个算法,来预测tweet会被转发几次
在未见的数据集上进行测试
如上的过程不是一日之功,尤其刚刚开始入门的时候。慢慢来,耐心大于进度。

4)变成全能工程师(full stack engineer)
在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。

况且即使你有这个条件,这样频繁切换上下文会浪费更多时间。比如你让同事早上给你塞一下数据到数据库,但是下午他才给你做好。或者你需要很长时间给他解释,逻辑是什么,存的方式是什么。

最好的变法,是把你自己武装成一个全能工作师。你不需要成为各方面的专家,但是你一定需要各方面都了解一点,查一下文档可以上手就用

会使用NoSQL。尤其是MongoDB
学会基本的visualization,会用基础的html和javascript,知道d3【6】这个可视化库,以及highchart【7】
学习基本的算法和算法分析,知道如何分析算法复杂度。平均复杂度,最坏复杂度。每次写完一个程序,自己预计需要的时间(用算法分析来预测)。推荐普林斯顿的算法课【8】(注意,可以从算法1开始,它有两个版本)
写一个基础的服务器,用flask【9】的基本模板写一个可以让你做可视化分析的backbone。
学习使用一个顺手的IDE,VIM, pycharm都可以。

5)读,读,读!
除了闭门造车,你还需要知道其它数据科学家在做些啥。涌现的各种新的技术,新的想法和新的人,你都需要跟他们交流,扩大知识面,以便更好应对新的工作挑战。

通常,非常厉害的数据科学家都会把自己的blog放到网上供大家参观膜拜。我推荐一些我常看的。另外,学术圈里也有很多厉害的数据科学家,不必怕看论文,看了几篇之后,你就会觉得:哈!我也能想到这个!

读blog的一个好处是,如果你跟他们交流甚欢,甚至于你可以从他们那里要一个实习来做!

betaworks首席数据科学家,Gilad Lotan的博客,我从他这里要的intern :D Gilad Lotan
Ed Chi,六年本科硕士博士毕业的神人,google data science http://edchi.blogspot.com/
Hilary Mason,bitly首席科学家,纽约地区人尽皆知的数据科学家:hilarymason.com

在它们这里看够了之后,你会发现还有很多值得看的blog(他们会在文章里面引用其它文章的内容),这样滚雪球似的,你可以有够多的东西早上上班的路上读了:)


6)要不要上个研究生课程?
先说我上的网络课程:
Coursera.org
https://www.coursera.org/course/machlearning
前者就不说了,人人都知道。后者我则更喜欢,因为教得更广阔,上课的教授也是世界一流的机器学习学者,而且经常会有一些很妙的点出来,促进思考。

对于是不是非要去上个研究生(尤其要不要到美国上),我觉得不是特别有必要。如果你收到了几个著名大学数据科学方向的录取,那开开心心地来,你会学到不少东西。但是如果没有的话,也不必纠结。我曾有幸上过或者旁听过美国这里一些顶级名校的课程,我感觉它的作用仍然是把你领进门,以及给你一个能跟世界上最聪明的人一个交流机会(我指那些教授)。除此之外,修行都是回家在寝室进行的。然而现在世界上最好的课程都摆在你的面前,为什么还要舍近求远呢。

gus

赞同来自:

我来提供一个不那么网页罗列、技能罗列的短答案吧。

首先,数据科学是什么?数据科学家又是什么?这本身就是个见仁见智的问题,几乎每个人都会给你一个不同的答案。所以你能做的只能是找出自己的理解,就像我只能提供给你我个人的理解。

本人进入数据分析行当快两年了,从一开始执着“数据科学家”的名分(因为听着新鲜有趣,那还是 2013 年下半年呢,呵呵两年过去看世界都变成什么样了),到后来一直不断翻新个人的理解,也算经历了一个找寻的过程,并且还在找寻中把。

在这个过程中,一开始我也是把注意力集中在“硬”技能上,就是那些常见的技能罗列的东西。这种清单,你可以随便去 LinkedIn 上搜索一个 Data Scientist 职位,然后在 desired skills 清单里一抓一大把,你会发现不同公司的要求变化相当大,所以不存在标准答案。然后你可以从数据分析的角度把自己最心仪公司招 Data Scientist 的要求的核心部分给总结一下,看看有哪些核心部分(就是交集啦)。那应该能提供给你一个比在这里提问更有效的答案。

不过我个人感觉真正的重要的技能还是“软”技能,也就是把关于行业的了解完全渗透到做数据分析的过程当中去。这里面有一个要点,就是始终清楚自己做数据的目的到底是什么。好比我上面提到用数据的角度去找出“数据科学家的核心技能集合”,当你做这样的事情的时候,你完全清楚自己的目的是什么,使用不管什么方式方法,你在做的就是一个“目的性明确的数据分析”工作。

现实中充满了各种各样的问题,有很多都可以转化成数据问题来解决。因此我在个人网页上写了下面这句话:

In the world of data mining, there's always an answer to your question

min

赞同来自:

我本科是学会计的,大四那年幸运得到内推机会,到一家欧洲的基金公司工作,帮老板研究对冲基金的策略。这里有个学数学的法国帅哥每天在用VBA和matlab做衍生品的定价,后来我不小心知道了他的收入,整个人都不好了。恰好那一年,IBM用统计学习技术做出的Watson在Jeopardy上打败了所有的人类对手,我感到了一种前所未有的恐惧感,在Watson面前,我这种靠记忆和小聪明吃饭的人还有什么价值?于是我辞职回家准备出国,要学统计学,申请失败后继续考研,经过许多惊险之后,到了交大读统计硕士。

成为一名数据科学家是一个很大的挑战,我从大四开始用了三四年的时间慢慢转型到了数据科学的方向,深感这个过程对商科、社科(以及不是计算机和数学方向的理工科)的青年来说有多大的挑战。数据科学是人类信息技术和数理科学的大融合,其知识密度和知识深度超过了大多数传统职业,要想从门外从到门内,学会开始驾驭这个庞然大物,有着一座又一座的知识山峰要去攀登,很像是一场创业的经历,高风险、高回报、很辛苦、但也很快乐。

这几年我一直在思考这个问题,到底大数据对我们意味着什么,我们又怎样适应大数据的时代,我觉得无论是要转型成为数据科学家,还是掌握数据分析技能,这是我们每一个人的事情。就像马云最近说的”数据是未来的石油“,谁都离不开它。我想根据自己的经历,从挑战和机遇这两个角度来谈谈,怎么从外行(社科、商科、传统工科)转型成为一名数据科学家,帮助更多像我一样的普通人能够少走些弯路。

大数据时代的技能大挑战
大数据时代,掌握数学和统计,就像在全球化时代掌握英语一样重要。数据已经成为了经济、管理、科研、政府等各个领域的共同工作语言,不懂数学和统计会面临很大的沟通成本。如何在碎片化的时代,克服数学焦虑,掌握数学和统计知识,是每个人都面临的挑战。

数学焦虑是人们面对数学问题时产生的习惯性的焦虑或恐惧情绪,会极大地影响人们解决数学问题的能力,并降低学习数学的兴趣。心理学家发现,对于数学的恐惧是一个很普遍的现象。调查反映,美国有60%的大学生都存在着数学焦虑情绪,而仅有10%的学生是对数学感兴趣的。从牛顿发明微积分算起,现代数学体系是人类最近300年发展出的一套理论体系。数学符号化、抽象化的运作方式,和人类大脑先天视觉化、具体化的思维习惯有着很大的差异。

数学学习需要学生保持长时间的注意力集中,也就是要坐得住冷板凳,而这一点正在变得越来越困难。美国高度发达的娱乐产业,已经使得多动症成为了高发的儿童心理疾病。美国中学生的数学水平测试,已经远远落后于亚洲和北欧的学生。虽然有着高质量的教育资源,但薄弱的数学基础使得美国大学生不愿意选择理工科专业,仅有20%的美国大学生毕业于理工科。

理工科人才的缺口,已经限制到了美国经济的发展,迫使奥巴马在2011年发布了“STEM人才培养计划”,其中的“STEM”,是科学、技术、工程、数学四个英文的缩写。BCG在2014年发表的研究报告中发现,美国的高科技行业面临着严重的人才紧缺。科技产业发达的华盛顿州中,有三分之二的科技高端岗位都无法找到合适的员工。 中国学生的数学基础教育是全球领先的,但是数学焦虑也同样普遍。数学基础课的挂科率在各个院校都排名靠前,而大多数学生对数学课程也缺少兴趣。高校的数学系也是报考人数不足,每年都需要通过调剂招生。

数据工作者的门槛不仅在于数学和统计学知识,也在于编程能力和行业经验。 大数据分析基于海量数据的储存、传输和处理,从原始数据到分析结果,需要运用一系列程序。数据分析常用的软件包括比如Hadoop、SQL、R、SPSS、Tableau、Excel,很多工作都需要编程的技能。数据分析的目标是发现问题、解决问题、提高效益,但每一个行业都有特定的问题。行业经验能够让数据分析人员找到问题的方向,抓住问题的重点,从而更有效地利用数据,也能够使分析的结果发挥更大的价值。编程能力和行业经验多许多大学生,也有着不小的门槛,这更是让优秀的大数据人才显得弥足珍贵。

全球资源为我所用
站在国际视角,大数据是所有中国学生的一个机会。大数据技术仍然在发展初期,中国和欧美发达国家站在了同一起跑线。根据联合国的学业能力测试,中国学生的数学基础教育是全球领先的,而且中国的理工科学生占到了总数的50%,远超出美国的20%。中国人口众多,移动互联网的普及也使得数据存量迅速增长。人才储备和数据储备,为中国发展大数据行业奠定了最重要的基础。大数据行业刚刚起步,不仅有着广阔的职业发展空间,而且人才缺口巨大,正在从各个行业吸纳人才。无论是什么专业背景、职业经历,只要坚定个人转型升级的信念,就能抓住大数据时代的机遇。

教育是一个人最重要的投资,其价值在技术变革的时代更加凸显。旺盛的需求使得教育成本迅速增长,对于很多家庭,教育已经成为了房产之外最大的负担。而我们在此前的报告也指出,随着高校和企业的差距被技术变革迅速拉大,高校所提供的知识和技能已经难以适应生产力要求。大数据时代的转型升级,前提就是要跟上生产力升级的步伐,充分利用互联网的力量。 大数据生长在互联网的土壤之上,数据通过互联网采集,通过云计算得到处理,而大数据分析所要教育资源和软件工具,几乎全都都能通过互联网获得。

教育作为文化产品,其价格和价值之间并没有必然关系。在传统课堂中投入过多的资金和时间,并不是最明智的选择。互联网教育的发展,让价值巨大的优秀教育也已成为免费的服务。在Edx、Coursera这些在线教育平台上,全球范围内最优秀的教育资源,已经免费开放给了全世界的用户,许多大数据领域的国际专家都在这些平台上开设了免费的学习课程。

优质、免费的教育是互联网给所有青年的礼物,而大数据领域最前沿的技术,也向所有人免费开源。只要掌握了使用方法,每个人都可以运用Hadoop搭建数据储存和计算平台,用R语言进行数据建模和可视化分析。免费的大数据工具功能强大而且性能稳定,在Facebook和IBM这类顶尖企业也被广泛运用。 分析工具的免费,使得每个人都有了学习和运用大数据技术的机会。大数据工具的迅速普及,车多司机少,驾驭工具的人才就出现了严重的供不应求。

吸收大数据分析的知识,应用大数据分析的工具,是实现数据化升级的必要条件。掌握大数据的知识和工具虽然有着很高的学习门槛,但是获取大数据的教育资源和分析工具的门槛却已经完全消失。

在实践中赢取持久战
大数据包含了很多领域的知识和技能,数学、统计、计算机是基础,行业经验、背景知识也必不可少。庞大的知识体量,使得大数据的学习成为了一场持久战。按部就班地学习教科书中的理论,对于大多数人来说并不现实。理论的讨论是可以无限延伸的,面对庞杂的技术理论和漫长的学习周期,很少有人能够坚持下来,这也是数据人才长期紧缺的原因之一。

真正可行的方式,是小处着手,循序渐进,在实践中学习理论。实践问题有着具体的场景,理解的成本更低,学习的目标也更明确,从而更容易坚持下去。麻雀虽小,五脏俱全,许多大数据项目的技术相对简单,却蕴含着很大的价值。比如银行业广泛应用的信贷风险模型,采用了基础的回归模型,大幅降低了银行坏账和经济损失。学习大数据,不妨选定一个感兴趣的职业方向,在实践项目中磨练技能,理解理论。在阶段性的成果中,不断获得成长的动力,在良好的心态中赢取这场持久战。

只要用数据思维看问题,实践大数据技术的机会其实很多。阿里巴巴的首席数据官,车品觉先生就给出一个精彩而朴实的例子。他看到属于个人的信息资料,已经远远超出了人们的记忆负荷,于是运用大数据的思想,在“印象笔记”中把自己所有的重要资料都进行了系统化地标记和检索,大幅度提高了工作的效率。 信息化的时代,利用数据创造价值的机会越来越多 ,而通过实践内化数据化的思维和技能,我们才能真正抓住这样的机会。我们能用从学会用大数据管理个人数据开始,到Kaggle这样的平台中参与大数据分析比赛开始,在项目团队中学习知识,实践技能。

大数据时代的合作精神
要想做好大数据分析,除了知识和经验,还要有充分的合作精神。大数据是信息技术和数理理论的大融合,没有人能解决全部的问题。在企业和学术界,一个典型的大数据分析项目,需要各方面的专业人士的通力合作,包括擅长统计理论的数据科学家,搭建计算平台的数据工程师,经验丰富的行业专家和数据分析师,以及负责数据可视化的设计师。计算机、管理、设计、数学、统计等各个专业的同学,都能够在大数据项目中,找到属于自己的独特位置。 在大数据分析项目,每一个同学的专业技能不仅仅停留在脑海中,而是在各个专业的同伴帮助下,转化成有实际价值的作品。

我们的高校仍然沿袭着工业化的组织结构,不同知识背景的同学被专业和学院割裂开来,身边的朋友和自己的背景都十分类似。要想开始大数据的实践,就必须找到目标一致、又技能互补的合作伙伴。可是怎样找到一群可以共事的合作者?首先可以加入学校的数学建模社团、数据分析协会,这里往往聚集了全校数学基础最扎实的同学。我们也可以寻找有特定技能和背景的同学,组成优势互补的项目团队,一起参加大数据分析的比赛。

真正的机会往往是以挑战的形式出现,大数据带来的职业挑战背后,正是绝佳的发展机会。大数据技术要求的数学基础和编程技能,确实有着很高的学习门槛,然而优质的教育资源、开源的数据分析工具、合作实践平台,也让我们拥有了驾驭大数据,实现大价值的机会。 是留在门槛之下,做一个随时可能被技术替代的旧青年,还是在实践积累中跨越门槛,成为掌控技术能量的新青年,选择在我们自己手中。

要回复问题请先登录注册