如何成为一名数据科学家

来自:    更新日期:早些时候
我怎样成为数据科学家~

如果你想要成为数据科学家需要有以下特点:
  1、教育——数据科学家受教育程度都很高,其中88%至少拥有硕士学位,46%有博士学位。虽然有一些名人特例,不过通常来说成为一名数据科学家需要扎实的教育背景,才能掌握所需的深度知识。最常见的研究领域包括数学与统计学(32%),其次是计算机科学(19%)以及工程学(16%)。
  2、SAS软件与/或R语言——对其中至少一种分析工具有深入的了解,一般对数据科学来说R语言更好一些。
  技术能力:计算机科学
  3、都是公司在招聘数据科学类角色时最常提出的语言要求。
  4、Hadoop平台——尽管不是总有这个需求,不过在很多情况下掌握它的人优势更大。熟悉Hive或Pig也是很有利的卖点。熟悉类似Amazon S3这样的云工具也会很有优势。
  5、SQL数据库/编程——尽管NoSQL和Hadoop已经成为了数据科学很大的组成部分之一,招聘者还是希望能够找到可以编写与执行SQL复杂查询的候选人。
  6、非结构化数据——数据科学家能够处理非结构化数据这一点非常重要,无论这些数据是来自社交媒体、视频源或者音频的。
  非技术类技能
  7、求知欲——毫无疑问最近到处都能看到这个词,尤其是在与数据科学家关联时。Frank Lo在几个月前的博文中描述了这个词的含义,并且讨论了其他必须的“软技能”。
  8、商业智慧——想要成为数据科学家,需要充分了解自己工作的行业,并且知道公司想要解决的商业问题是哪些。能够根据数据科学分辨出解决哪些问题对公司来说更为重要,并且能够找出利用数据的新办法,这些是非常关键的。
  9、通用技能——寻找优秀数据科学家的公司想要的是这样的人材:能够清楚顺畅地将自己的技术发现转化为非技术团队(比如市场部或者销售部)能够使用的内容。

技术技能:分析学
  1、教育——数据科学家受教育程度都很高,其中88%至少拥有硕士学位,46%有博士学位。虽然有一些名人特例,不过通常来说成为一名数据科学家需要扎实的教育背景,才能掌握所需的深度知识。最常见的研究领域包括数学与统计学(32%),其次是计算机科学(19%)以及工程学(16%)。
  2、SAS软件与/或R语言——对其中至少一种分析工具有深入的了解,一般对数据科学来说R语言更好一些。
  技术能力:计算机科学
  3、都是公司在招聘数据科学类角色时最常提出的语言要求。
  4、Hadoop平台——尽管不是总有这个需求,不过在很多情况下掌握它的人优势更大。熟悉Hive或Pig也是很有利的卖点。熟悉类似Amazon S3这样的云工具也会很有优势。
  5、SQL数据库/编程——尽管NoSQL和Hadoop已经成为了数据科学很大的组成部分之一,招聘者还是希望能够找到可以编写与执行SQL复杂查询的候选人。
  6、非结构化数据——数据科学家能够处理非结构化数据这一点非常重要,无论这些数据是来自社交媒体、视频源或者音频的。
  非技术类技能
  7、求知欲——毫无疑问最近到处都能看到这个词,尤其是在与数据科学家关联时。Frank Lo在几个月前的博文中描述了这个词的含义,并且讨论了其他必须的“软技能”。
  8、商业智慧——想要成为数据科学家,需要充分了解自己工作的行业,并且知道公司想要解决的商业问题是哪些。能够根据数据科学分辨出解决哪些问题对公司来说更为重要,并且能够找出利用数据的新办法,这些是非常关键的。
  9、通用技能——寻找优秀数据科学家的公司想要的是这样的人材:能够清楚顺畅地将自己的技术发现转化为非技术团队(比如市场部或者销售部)能够使用的内容。

我认为有几个大方面
1)学好 python。
现在几乎所以公司的数据都可以 api 给你,而 python 的数据处理能力强大且方便。加之在 machine learning 的很多算法上,python 也独俏一方。另外,它的简明方便迅速迭代开发,15 分钟写完个算法就可以看效果了。
除此之外,py 还有点酷酷的感觉。任何程序拿 matlab 和 c++ 都是可以写的,不过我真没认识过哪个 d 愿意自己把自己扔那个不酷的框框里:D
对不规则输入的处理也给 python 一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要
分词,分句
提取特征
整理缺失数据
除掉异类(outlier)
在这些时候,python 可谓是神器。这里做的 1-4 都可以直接在 scikit-learn 里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。
简而言之,对于数据科学面临的挑战,python 可以让你短平快地解决手中的问题,而不是担心太多实现细节。
2)学好统计学习
略拗口。统计学习的概念就是“统计机器学习方法”。
统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的 prediction 而已。因此这两个学科又开始重新融合。
为什么统计学习很重要?
因为,纯粹的机器学习讲究算法预测能力和实现,但是统计一直就强调“可解释性”。比如说,针对今天微博股票发行就上升 20%,你把你的两个预测股票上涨还是下跌的 model 套在新浪的例子上,然后给你的上司看。
Model-1 有 99%的预测能力,也就是 99%的情况下它预测对,但是 Model-2 有 95%,不过它有例外的一个附加属性——可以告诉你为什么这个股票上涨或者下跌。
试问,你的上司会先哪个?问问你自己会选哪个?
显然是后者。因为前者虽然有很强的预测力(机器学习),但是没有解释能力(统计解释)。
而作为一个数据科学家,80%的时间你是需要跟客户,团队或者上司解释为什么 A 可行 B 不可行。如果你告诉他们,“我现在的神经网络就是能有那么好的预测力可是我根本就没法解释上来”,那么,没有人会愿意相信你。
具体一些,怎么样学习统计学习?
先学好基本的概率学。如果大学里的还给老师了(跟我一样),那么可以从 MIT 的概率论教材【1】入手。从第 1 章到第 9 章看完并做完所有的习题。(p.s.面试 Twitter 的时候被问到一个拿球后验概率的问题,从这本书上抓来的)。
了解基本的统计检验及它们的假设,什么时候可以用到它们。
快速了解统计学习有哪些术语,用来做什么目的,读这本【5】。
学习基本的统计思想。有 frequentist 的统计,也有 bayesian 的统计。前者的代表作有【2】,后者看【3】。前者是统计学习的圣书,偏 frequentist,后者是 pattern recognition 的圣书,几乎从纯 bayesian 的角度来讲。注意,【2】有免费版,作者把它全放在了网上。而且有一个简易版,如果感觉力不从心直接看【2】,那么可以先从它的简易版开始看。简易版【4】是作者在 coursera 上开课用的大众教材,简单不少(不过仍然有很多闪光点,通俗易懂)。对于【3】,一开始很难直接啃下来,但是啃下来会受益匪浅。
注意,以上的书搜一下几乎全可以在网上搜到别人传的 pdf。有条件的同学可以买一下纸制版来读,体验更好并且可以支持一下作者。所有的书我都买了纸制版,但是我知道在国内要买本书有多不方便(以及原版书多贵)。
读完以上的书是个长期过程。但是大概读了一遍之后,我个人觉得是非常值得的。如果你只是知道怎么用一些软件包,那么你一定成不了一个合格的 data scientist。因为只要问题稍加变化,你就不知道怎么解决了。
如果你感觉自己是一个二吊子数据科学家(我也是)那么问一下下面几个问题,如果有 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 都可以。
4)读,读,读!
除了闭门造车,你还需要知道其它数据科学家在做些啥。涌现的各种新的技术,新的想法和新的人,你都需要跟他们交流,扩大知识面,以便更好应对新的工作挑战。
通常,非常厉害的数据科学家都会把自己的 blog 放到网上供大家参观膜拜。我推荐一些我常看的。另外,学术圈里也有很多厉害的数据科学家,不必怕看论文,看了几篇之后,你就会觉得:哈!我也能想到这个!
读 blog 的一个好处是,如果你跟他们交流甚欢,甚至于你可以从他们那里要一个实习来做!

保持开放的心态。如果你是一个新手,实际上并不知道什么是数据科学,所以它完全有可能不是你想要的工作领域。要成为数据科学家需要花费大量的时间和精力,请充分了解数据科学中不好的方面,比如数据整理,以及构建数据生产流水线,而这些工作占了数据科学家日常工作的大部分时间。

首先要做的是学习Python。尽快在MOOC上选择相关的课程项目,当熟悉Python基本用法后,请学习如何使用Jupyter工具,并选学一些数据科学领域的网络公开课。

如果你是完全从零开始的,一开始就以高级的数据科学职位为目标可能不太好,选择一些入门级的职位比较好,比如数据可视化或数据分析职业的需求量很大,并且市场需求也大。这些岗位的人员通常与数据科学家一起工作,一旦你积累了相关经验,就为今后的胜任更高级的数据科学相关职位奠定了基础。



1)学好 python。
现在几乎所以公司的数据都可以 api 给你,而 python 的数据处理能力强大且方便。加之在 machine learning 的很多算法上,python 也独俏一方。另外,它的简明方便迅速迭代开发,15 分钟写完个算法就可以看效果了。
除此之外,py 还有点酷酷的感觉。任何程序拿 matlab 和 c++ 都是可以写的,不过我真没认识过哪个 d 愿意自己把自己扔那个不酷的框框里:D
对不规则输入的处理也给 python 一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要
分词,分句
提取特征
整理缺失数据
除掉异类(outlier)
在这些时候,python 可谓是神器。这里做的 1-4 都可以直接在 scikit-learn 里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。
简而言之,对于数据科学面临的挑战,python 可以让你短平快地解决手中的问题,而不是担心太多实现细节。
2)学好统计学习
统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的 prediction 而已。因此这两个学科又开始重新融合。
3)学习数据处理
这一步不必独立于 2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用 80 年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的 80 年代数据集上,为什么不自己搜集一些呢?
4)变成全能工程师(full stack engineer)
在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。

1. 业务知识
2. 数理统计和数据分析
3. 计算机相关知识
3.1 数据处理与收集(ETL?)
3.2 机器学习和数据挖掘

三、数据科学家所需硬件技能
(1) 计算机科学
一般来说,数据科学家大多要求具备编程、计算机科学相关的专业背景。简单来说,就是对处理大数据所必需的Hadoop、Mahout等大规模并行处理技术与机器学习相关的技能。
零基础学习 Hadoop 该如何下手?

想从事大数据、海量数据处理相关的工作,如何自学打基础?

(2) 数学、统计、数据挖掘等
除了数学、统计方面的素养之外,还需要具备使用SPSS、SAS等主流统计分析软件的技能。其中,面向统计分析的开源编程语言及其运行环境“R”最近备受瞩目。R的强项不仅在于其包含了丰富的统计分析库,而且具备将结果进行可视化的高品质图表生成功能,并可以通过简单的命令来运行。此外,它还具备称为CRAN(The Comprehensive R Archive Network)的包扩展机制,通过导入扩展包就可以使用标准状态下所不支持的函数和数据集。R语言虽然功能强大,但是学习曲线较为陡峭,个人建议从python入手,拥有丰富的statistical libraries,NumPy ,SciPy.org ,Python Data Analysis Library,matplotlib: python plotting。
如何系统地学习数据挖掘?

做数据分析不得不看的书有哪些?

怎么学习用R语言进行数据挖掘?

(3) 数据可视化(Visualization)
信息的质量很大程度上依赖于其表达方式。对数字罗列所组成的数据中所包含的意义进行分析,开发Web原型,使用外部API将图表、地图、Dashboard等其他服务统一起来,从而使分析结果可视化,这是对于数据科学家来说十分重要的技能之一。
有哪些值得推荐的数据可视化工具?

数据科学社区SofaSofa


如何成为一名数据科学家视频

相关评论:
  • 19629837500数据科学家需要具备哪些素质
    危邹诞四、持续学习和创新精神。数据科学是一个不断发展的领域,数据科学家需要保持持续学习的态度,不断更新自己的知识和技能。同时,数据科学也是充满创新的领域,数据科学家需要具备创新精神,不断探索新的方法和技术,以应对不断变化的数据挑战。五、团队合作和沟通能力。数据科学家需要与不同背景的人合作,包...

  • 19629837500数据科学家需要掌握哪些技能?
    危邹诞一、编程和数据库 一般情况下,数据科学家需要拥有程序设计、计算机科学相关的专业背景,处理大数据所需的Hadhop。需要掌握Mahour等大规模的并行处理技术和与机器学习相关的技能。天通苑IT培训建议一般利用python来获取数据,整理数据,使用matplotlib进行数据显示。二、数学统计和数据挖掘 除了数学和统计知识,你...

  • 19629837500成为数据科学家有哪些要求?
    危邹诞1、复习你的数学和统计技能 一个好的数据科学家必须能够理解数据告诉你的内容,做到这一点,你必须有扎实的基本线性代数,对算法和统计技能的理解。在某些特定场合可能需要高等数学,但这是一个好的开始场合。2、了解机器学习的概念 机器学习是下一个新兴词,却和大数据有着千丝万缕的联系。机器学习使用...

  • 19629837500如何成为一名数据科学家
    危邹诞成为一名数据科学家需要以下几个方面:1. 业务知识 2. 数理统计和数据分析 3. 计算机相关知识 3.1 数据处理与收集(ETL?)3.2 机器学习和数据挖掘

  • 19629837500成为一名数据科学家应具备哪些品质?
    危邹诞4、交流能力。即使能从大数据中发现有用的洞察,如果不能将其应用于商业,其洞察的价值也会减半。 因此,能把数据分析的结果变成“故事”,具有向数据分析没有专业知识的事业部同事和管理阶层有效地传达的资质是很重要的。5、好奇心。成功的数据科学家的共同点,似乎不仅对庞大数据背后隐藏的...

  • 19629837500我怎样成为数据科学家
    危邹诞如果你想要成为数据科学家需要有以下特点:1、教育——数据科学家受教育程度都很高,其中88%至少拥有硕士学位,46%有博士学位。虽然有一些名人特例,不过通常来说成为一名数据科学家需要扎实的教育背景,才能掌握所需的深度知识。最常见的研究领域包括数学与统计学(32%),其次是计算机科学(19%)以及工程...

  • 19629837500如何成为一名数据科学家
    危邹诞想要成为一名数据科学家当然要通过不断的学习了,空想是不可能实现的。三种方式供你选择:一种是自学,当然你要有些基础还要有不错的学习能力及自制力。一种是报班学习,这个是学的最快的但是需要教学费。还有一种是线上学习,这个需要找到不错的视频教程,你想学的话可以看看扣丁学堂的教程。以上三种...

  • 19629837500想成为数据科学家,需要申请读什么专业
    危邹诞尽管R语言的学习曲线较为陡峭,但通过学习Python也是一个不错的选择,因为Python拥有丰富的统计库,如NumPy、SciPy、Python Data Analysis Library以及matplotlib。了解如何系统地学习数据挖掘,阅读相关书籍,以及如何使用R语言进行数据挖掘是必要的。数据可视化技能对于数据科学家同样重要。(3) 数据科学家需要...

  • 19629837500如何成为一名数据科学家
    危邹诞数据科学家是指能采用科学方法、运用数据挖掘工具对复杂多量的数字、符号、文字、网址、音频或视频等信息进行数字化重现与认识,并能寻找新的数据洞察的工程师或专家(不同于统计学家或分析师)。一个优秀的数据科学家需要具备的素质有:懂数据采集、懂数学算法、懂数学软件、懂数据分析、懂预测分析、懂...

  • 19629837500如何成为一名数据科学家
    危邹诞成为一名数据科学家,并不难,小编给你总结了以下几点,只要你掌握了下面的技术,还是很容易成为数据科学家的。(1) 计算机科学 一般来说,数据科学家大多要求具备编程、计算机科学相关的专业背景。简单来说,就是对处理大数据所必需的Hadoop、Mahout等大规模并行处理技术与机器学习相关的技能。(2) 数学、...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网