数据分析师的基本素养——论如何成为一名数据科学家(一)

摘要:本系列文章是Quora网站上"如何成为一名数据科学家"问题的高分答案集锦,来自不同领域的数据大咖们结合自己的切身经验,分享了对数据科学家成长之路的看法,可以作为初学者了解或入门学习使用。本篇文章作者是Rohit Malshe,就职于英特尔公司。

当我在整个互联网中查阅数据科学相关的材料时,我只会使用C和Matlab。我精通这些语言,但直到那个时候,我所做的以及能做的任何事情都不过是工程计算。我生成大量的数据,并创建一些图表。当我被大量涌现的数据包围时,我开始思考如何在其他地方应用这些数据。我开始寻找各种课程和方法,想要使用数据做些与众不同的事情。最开始的时候,我感到无从下手,不知道该从哪里学起,也不知道该学些什么。幸运的是,我身边几乎总是有那么几个深入了解数据科学的人。

和我一起工作的人,其中一些人编写C/C++程序来生成GB级别的数据,一些人管理着分布在大型数据库上的TB级数据,一些人是顶尖的SQL、Python和R程序员,还有一些人使用Hadoop、Sap以及商业智能等搭建了组织范围内的数据库。

对于刚刚入门数据科学的新手,我有以下几点建议:

  1. 在Coursera上学习各种基础知识,但是,如果要我把能在Coursera上学到的知识同数据科学本身相比较,我只能说——Coursera就好比在Chipotle Mexican Grill吃墨西哥鸡肉卷。你肯定能吃饱,但仅仅这样是不够的,还需要些别的东西。
  2. 深入学习数据科学真的很不容易,我认为它相当于五星级自助餐,提供20种美食和500种不同的食谱。
  3. 从Coursera开始学习当然很不错,我们当然应该学习这些课程,但是我个人从来没有在Coursera上付过费,随着时间的推移,我肯定可以学到各种各样的知识。
  4. Kaggle对于那些崭露头角的工程师来说真的是一个非常不错的资源,在这里他们可以了解到其他人的各种想法,并把这些想法实现出来。

我自己是在具体实践中学习数据科学的。我从SQL开始学起,接着我学了Python和R,然后我学了许多Python和R中的工具库。之后我学了Html、使用VB脚本的GUI编程以及C#编程。后来我还学了Scikit learn。最后,我在办公室与各种各样的统计学家讨论,他们每天的工作就是对数据进行分析并得出结论,在和他们交流的过程中我学到了JMP/JSL脚本和很多统计学知识。

下面是我学习数据科学的完整流程。

首先我想建议大家的是,学习科学。数据科学是90%的科学加上10%的数据管理。不了解科学,不知道自己想要得到什么,也不知道为什么要得到它,你将无法使用你在Coursera上学到的任何知识。在这一点上,我几乎可以向你保证。

我曾见到我朋友学习了Coursera上的一些课程,但是到了最后,他们没有实现任何东西,他们无法得出正确的结论,他们实际上并没有"应用"任何他们学到的知识。除此之外,他们甚至没有使用他们获得的技能。

我按照如下的方式学习数据科学:

  1. 深入数据,了解数据的结构,了解数据的不同类型。在这个过程中,我理解了我们为什么要收集数据,我们如何收集这些数据并存储它们,以及我们在存储之前如何对数据进行预处理。
  2. 学习如何使用这些编程语言高效地处理数据。我学会了清洗数据,按照我预期的方式加工数据,并使用每一种可能的方法可视化数据。仅仅绘制数据就会花费我好多小时的时间,查看不同图表之间数据展示效果的不同。
  3. 我从负责数据库管理的朋友那里学习他们是如何管理和操作数据库的。我学习了数据库中表的结构。
  4. 学习如何绘制相关性图表,以及如何计算任何投资操作的收益。这是数据科学中的各类知识开始交叉的地方。没有什么图表是我不能画的。基本上,我在互联网上看到的图表我都会学习它的绘制方法。这点非常重要,图表是你用数据讲故事的关键。
  5. 学习一些自动化的东西,这真的很神奇,因为你可以自动地完成一些事情,这可以为你节省很多时间。
  6. 自动化很容易通过Python、R、VBscript或C#编程来实现。我可以告诉你,对我来说大概没有什么是不能用自动化的方式解决的。只需要按一下按钮,事情就这么完成了。
  7. 学习如何撰写报告。我意识到,我不得不以邮件的形式给其他人发送大量的数据和图表。相信我,大家都没有时间,也没有兴趣。 但是如果你做出的图表形象生动,写的报告通俗易懂,能够阐述你想说明的一切,并将丰富且强有力的数据展示在几幅有趣的图表之中,你就能够说服别人。
  8. 学习如何讲述故事。这也就是说,你应该能够向公司的副总裁说清楚自己部门存在的最大问题是什么。你通过生成吸引人的图表来讲述故事,进而引出你的结论。做不到这一点,你无法说服任何人。人们对数字不感兴趣。他们只记得名字、地点、事情、灵感,以及其他人做某些事的理由。一名真正的数据科学家也是一名真正的数据展示者。
  9. 最后,阅读互联网上所有能找到的博客,看看其他人如何做这些事情,如何编写程序,如何创建各种各样的图表,如何用自动化的方式处理任务等等。有些人凭借自己的技能完成了一些不可思议的项目,我也受到他们经历的启发,萌生出许多想法。这是一种了解别人想法的很好的方式。你可以基于大家的想法,做一些可以为你生活或工作带来便利的事情,并且在这个过程中发挥自己的想象力。

这里有一些博客或许对你有所帮助:数据科学博客终极指南。

这些博客我读了很多,也深入学习了其中的知识。可能需要花费数周的时间才能学完这些博客,编写代码和结合数据设计实验可能也要占用几个周末的时间。

我最常访问的网站包括:

  • Stack Overflow
  • Python Programming Tutorials
  • The Comprehensive R Archive Network
  • Seaborn: statistical data visualization
  • Your Home for Data Science
  • 16+ Free Data Science Books
  • ipython/ipython
  • vinta/awesome-python
  • scikit-learn: machine learning in Python
  • Grace: Gallery(这里有很多神奇的图表)
  • Practical Programming for Total Beginners
  • Learn python the hard way
  • YouTube
  • Toad World
  • SQL Tutorial
  • CodeAcademy: Python
  • http://mahout.apache.org/
  • http://www.netlib.org/lapack/
  • http://www.netlib.org/eispack/
  • http://www.netlib.org/scalapack/
  • RegExr: Learn, Build, & Test RegEx
  • Regex for JavaScript, Python, PHP, and PCRE
  • StatsModels: Statistics in Python
  • Installing NLTK - NLTK 3.0 documentation

我读得最多的书:

  1. Python学习手册
  2. R语言编程艺术
  3. 很多统计方面的书,我随后会在这里更新。

现在我会给你提供一个更详细的方法,你可能会得到一些坚持下去的动力。

一名典型的数据科学工程师的工作是什么样子的?数据科学又是如何发挥作用的?

1、决策制定:在我的工作中,我每天都需要制定一些决策和计划。此外,我还需要向各位股东汇报进展,指导不同的员工,查看各种各样的数据,处理各种各样的工具和机器。这些机器中,其中一部分是用来处理任务的实际物理节点,也有一部分是维护物理节点的计算机程序和软件平台。

2、数据:我们拥有的大部分数据要么存储在分布于各个数据单元的若干服务器上,要么存储在一些共享设备上,或者存储在服务器中的硬盘驱动器上。

3、数据库:这些数据库服务器可用于使用SQL语句获取数据、直接地提取数据、使用FTP拷贝数据、以表格、CSV或文本的形式输出数据等等。通常我们会使用多种方法从数据库中提取数据。有很多种SQL平台,如TOAD、商务智能以及自建的内部平台等等。

  • 基于这些平台可以很轻松地学习SQL,也可以创建很多SQL脚本。
  • 你甚至可以创建能自动生成脚本的脚本。
  • 我建议你学习SQL,因为它是获取数据最常使用的语言之一。

4、还是数据:数据库中的数据可以按高度结构化的形式组织,也可以采用非结构化的形式,比如用户评论等等。

  • 这些数据通常具有固定数量的变量,有时变量的数量也可能会发生变化。
  • 数据有时也可能会丢失,也可能会错误地输入到数据库中。
  • 发现这样的问题时,应该立刻向数据库管理员发送邮件,并由他们改正系统中的错误。
  • 通常在为整个大型项目创建数据库之前,几个人会聚在一起讨论数据大致的形式,如何将它们划分到各个数据表中,以及不同数据表间应该如何连接。
  • 这些人是真正的数据科学家,他们知道终端用户每天的需求是什么。
  • 他们总是尝试以结构化的形式组织数据,因为这样可以使数据处理操作变得更加容易。

5、脚本与规划:当我在专用计算机的各个文件夹中获取和转储数据时,我会使用多个专门设置在特定时间运行或自动运行的脚本。我有一个相当大的硬盘用来存储大量数据。

  • 我通常会把新数据追加到现有的数据集合中,然后适时地清除旧数据。
  • 有时候我会在程序运行期间设置休眠指令,到达预定时间时快速地检查一下,然后再次进入休眠状态。

6、更多的脚本:此外,还有一些脚本专门用于压缩这些数据集并基于这些数据制定一系列决策。

  • 清洗数据,绘制有价值的数据透视表,要想从数据中挖掘信息,图表至关重要。
  • 要做到这点,首先你需要对自己的数据有全面的了解,你应该能够进行各种手工计算,生成excel表格并可视化数据。
  • 科学:我建议你在从事数据科学之前,先学习科学,了解隐藏在数据背后的物理学,深入研究并掌握这些知识。比如说,如果你在一家T恤公司工作,你应该熟悉T恤的方方面面,你应该了解所有可能的关于T恤的知识,即使没有任何数据,你也应该很清楚客户想要什么。
  • 如果没有对科学的良好认知,数据科学将毫无价值,基于数据科学的各种探索也只会徒劳无功。
  • 注意事项:我看到很多人甚至不知道在图表中应该绘制些什么。
  • 我见过最糟糕的情况是,有些人围绕一些随机变量,根据任意两个随机变量间的关系绘制图表,并从这样的图表中分析结论。
  • 当然,很多地方都隐含着事物间的联系,但是你一定要清楚对比的变量之间是否存在一定的因果关系。
  • 示例:诺贝尔奖获得者的数量与许多国家的人均巧克力消耗量间存在着明显的相关性,但是这是一种因果关系吗?可能并不是!

最后,但也同样重要的是——仅仅使用SQL、C、Python、R和VB.Net,你就可以在数据中挖掘出自己感兴趣的信息。你当然不需要受限于这些技术,但学习新的技术需要时间、耐心以及一项接一项的系统规划。

祝你好运!

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2017-02-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

基于开源程序漏洞的攻击在2017年将增长20%

现在,无论是商业软件还是程序员自行开发的小程序,开源代码已经变得越来越普遍了,而开源似乎也已经成为了一种趋势。但需要注意的是,Black Duck软件公司的研究...

2118
来自专栏镁客网

为AR滤镜效果而战!Facebook收购计算机视觉公司Fayteq

1170
来自专栏游戏开发那些事

【Unity3d游戏开发】unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(转载)

  此文为转载,因为最近在做U3D,有一些概念弄得不是很清楚,看到这篇博客讲的不错,就转载过来了,方便自己随时查看。

1512
来自专栏腾讯技术工程官方号的专栏

大型DCI网络智能运营实践

? 9月14-15日,GOPS全球运维大会上海站圆满举行,为期两天的运维盛宴,为各位运维人带来了相互交流和学习的绝佳平台,来自腾讯技术工程事业群(TEG)网络...

1462
来自专栏Java后端技术栈

简单聊一下推荐系统的基本要素!

其中,前三者是和机器学习没有任何关系的,但却是推荐效果最好的三种方式。一般说来,这部分内容应该占到总的推荐内容的80%左右,另外20%则是对长尾内容的个性化推荐...

1603
来自专栏大数据文摘

王昊奋:大规模知识图谱技术

9545
来自专栏ThoughtWorks

业务分析实践:10个常见问题 | TW洞见

今日洞见 本文作者:ThoughtWorks-亢江妹。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人...

3559
来自专栏无原型不设计

如何做一个完全失败的UX设计师?

人人都说,做一个成功的UX设计师是很难的,你认为做一个的完全失败的UX设计师就会很容易?然而事实并不是这样。如何成为一名彻底失败的UX设计师?至少,你需要做到...

2897
来自专栏ATYUN订阅号

【业界】创建深度学习数据平台时,你需要考虑的五个因素

AiTechYun 编辑:nanan 随着AI应用程序和深度学习算法的成熟,许多组织正在制定计划,以弄清楚它们将如何从数据中提取差异化竞争优势。 ? 事实上,在...

3296
来自专栏小狼的世界

[每天五分钟,备战架构师-11]数据库系统

数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的,但又是潜在有用的信息和知识的过程。

1432

扫码关注云+社区

领取腾讯云代金券