在数据科学(Data Science)领域,除了“什么是数据科学”这个问题以外,大家最感兴趣的问题就是“如何学习数据科学?”其实这个问题除了新手会问,有时候领域内的老手也有些迷惑。
数据科学家被誉为“2016年最佳工作”,甚至是“21世纪最性感的工作”,但学习起来真的并没有我们想象的那么轻松。
网络上可以找到大量关于学习数据科学的建议,但是如此大量的信息堆叠让可能还是让初学者感到无所适从。所以本文想要给出一个较为简单的学习方法:用八个步骤学习数据科学。本文的目的不在于为你提供一个详尽的学习清单,我们只是为每一个对学习数据科学有兴趣或者已经从事该领域工作但仍然想要提升自己的人们提供一个指导性意见。(另外,文中的插图能帮助视觉型学习者更加快速地学习)
原文作者 Karlijn Willems,雷锋网编译,未经许可不得转载。
什么是数据科学?
数据科学这个概念目前仍然比较模糊。一直以来,跟数据科学概念相关的概念层出不穷。下图是第一张关于“数据科学”概念的韦恩图,由 Drew Conway 在2010年制作。图中的中心部分是数据科学,韦恩图表明它是黑客技术、数学、统计学和其他实质性的专业知识的组合。
多年来,关于数据科学领域的概念韦恩图非常多,并且越做越好。如果你想查看关于这个方面的详细历史,这里有一篇文章可以关注:Battle of the Data Science Venn Diagrams。但是最近,对这个概念的讨论又有了新的进展。2016年,Gregory Piatetsky-shapiro 制作了一个不同的概念图,其中有两点最引人注目:数据科学不再处于图的中心位置;并且他定义数据科学的方法也有所不同。最新的研究室是利用数据科学与其他学科(如人工智能、机器学习、深度学习、大数据、数据挖掘)的关系来对其进行定义。由此得出的定义是,数据科学是人工智能、机器学习和大数据的交集,并与数据挖掘有着本质性联系,它是数据挖掘的扩展集和后继术语。
这两个图示可能看起来完全不同,但是它们的确有很多相似之处:Piatetsky-shapiro 的图示也运用了 Drew Conway 的韦恩图中的黑客技术、数学、统计学和其他实质性的专业知识。
数据科学家的教育背景
过去几年中,有很多关于数据科学家教育背景的调查,调查的结果也不尽相同。2014 年的 O' Reilly 数据科学家薪酬调查中,大约 28%的受访者拥有学士学位,44%拥有研究生学位,20% 拥有博士学位。数据科学家们普遍有着数学/统计学、计算机、工程的学科背景。下图是 2016 年的调查结果,与 O' Reilly 的调查结果非常接近。
通常来说,你可以从调查中看到,数据科学家的普遍教育程度是硕士和博士。学科领域并不是十分重要,但是定量研究类的学科背景仍有一定优势。
第一步:学好统计学、数学和机器学习
虽然数据科学的定义在不断地改变,但是数据科学仍然是一种技术型学科。对统计学、数学和机器学习的良好知识基础仍然是对数据科学家这一行业的基本要求。
学好这三门课是非常痛苦的,尤其是对于那些没有技术背景的人。但幸运的是,有很多高质量的资源可以帮助你学习:Khan Academy 有十分多样化的在线数学课程,你会由此受益良多;同时,别忘了在 MIT Open Courseware 上学习线性代数课程;机器学习部分,你可以参考DataCamp, Stanford Online, Coursera。
第二步:学习编程
提升你的编程技巧也是学习数据科学的必经之路。
你可以从熟悉计算机的基本知识开始,了解基础的数据结构和搜索算法,明白端到端的工作流程。因为数据科学家的工作需要与其他系统相结合,所以最好能够明白从需求收集到分析,再到测试、维护的整个过程是如何进行的。当你掌握了这些概念后,就应该开始选择一种编程语言。你可以选择开源语言或者收费版的语言,选择的考量在于学习语言的时间长短、你想要进入的行业的要求、语言的性价比等等。下图可以帮助你选择适合你的语言。
第三步:学习数据库
当你开始学习数据科学时,你会发现很多教程将重点放在从非二进制文件中检索数据的技巧。然而,当你开始工作或进入行业内部时,你会发现绝大多数的工作是与一个或多个数据库相关联的。
市面上有很多种数据库。企业可能使用的是商业版的数据库(比如 Oracle),或者更倾向于开源的数据库。在众多数据库中学习的关键在于明白数据库是如何运作的,学习数据库的原理、工作过程和输出结果。其中最应掌握的概念是关系数据库管理系统(RDBMS)和数据仓库。你应该充分学习关系型建模和维度建模方法,学习 SQL 和抽取、转换、装载的过程(ETL)。
如果你想要学习数据库,你可以查看Mongo DB University,Stanford Online 的在线课程 Introduction to Databases 和 DataStax 及 TutorialsPoint 上的教程。
第四步:探索数据科学家的工作流程
学习的下一步就是了解数据科学的工作流程。很多指导教程和课程仅仅关注其中的一个或者两个部分,并没有对这个工作流程提供一个完整的视角,而对整个工作流程的宏观了解却是你今后成为数据科学家或是在数据组中工作时必须掌握的。其中很重要的问题是,不能忘记数据科学家的工作是一个需要不断迭代的过程。
对已经学会编程的数据科学的入门者来说,了解工作流程最简单的方法就是练习你的编程技巧,用 R 语言或者 Python 语言来开始练习,学习使用数据包和数据库来简化你的编程过程。
对于那些编程技巧不够的初学者,你可以利用开源的工具,因为它不需要你的任何编程技能。这些工具可以使你在同一时间完成数据科学工作流程中的多步工作。比如,RapidMiner 可以对你的数据进行收集、标出重点、清洁数据、建模、评估等等。应该注意的一点是,你可以去使用这些工具,但是你仍然需要继续提升你的编程技术。
第五步:大数据进阶
很多人在学习的时候过分关注数据科学的基本知识,而忘记了其宏观的结构概念。在之前的步骤中已经对此有一些提示,但是这里仍然有一个矛盾,比如就像你在学习教程时重点关注的是非二进制的文件但是在实际工作使用中却更多需要数据库。更重要的一个问题在于数据的更新速度、多样性和数据量都是明明白白地摆在那里的,我们不可能忽略这些。
大数据或许是有些夸大的说法,但是它的确存在,并且认识它,明白它的深刻含义是非常重要的。其中三个最最需要了解的关于大数据的内容是:
1、明白为什么大数据需要不同的数据处理方法?这里最好的学习方法可能是查找使用大数据的案例,比如 点击这里。
2、熟悉分布式系统基础架构 Hadoop 的模型,因为它被广泛用于数据的分配存储和处理,详见Hadoop。
3、不要忘记了 Spark框架。你可以尝试用 Python 或 Scala 语言来学习 Spark,这样你既练习了编程技术,也扩展了对数据科学的视野,一举两得。
第六步:成长,交流,学习
成长。如果你已经成功掌握了之前所说的一些基础知识,接下来就是成长提升的阶段了。你要通过各种数据科学方面的问题来不断地练习,努力将学习的原理应用到实践中。同时,你也应该从中增强自己在该领域的直觉感。练习题目看这里:Kaggle 和 DrivenData。
沟通。作为一个数据科学的初学者,你可能在学习中遇到过很多问题和困惑。你应当多于该领域有经验的人沟通交流,与他们讨论你的问题,向他们寻求帮助和建议。这些人会激励你继续学习,鞭策你走的更远。
学习。持续性的学习和数据科学也许是一对同义词。上文提到的Kaggle 和 DrivenData 可以教会你如何在实践中进行数据处理,但是你还可以在自己的日常生活中把知识运用的更深入。
第七步:完全将自己沉浸其中
就像学习语言需要语言环境一样,学习数据科学也需要这种能够沉浸其中的环境。根据你已有的能力和知识,你可能会考虑参加集训营,找实习,或者找相关工作。参加集训营是一种快速提高能力的方法,同时也可以收获志同道合的朋友,扩展你的人际圈。寻找集训营,请点击 Galvanize 和 Metis。
其次,如果你已经熟练掌握了数据科学的基本知识,你可以考虑找一个实习岗位。很多大公司(如 Facebook、Quora和亚马逊)都在寻找相关实习生,你可以从实习岗位开始对该领域的深入探索。你还可以从你的社交网络渠道中寻找开放的职位和实习信息。最后,你也可以关注创业企业,小公司也许可以让你学到更多。AngelList里有一些初创企业的招聘信息。
最后一种沉浸其中的方法是找相关工作,然而很多初学者在这里遇到了瓶颈。也许你对数据科学家的工作十分感兴趣,但是在找工作的时候一定要牢记以下内容:
-
1、工作职位并不是总是符合其定位。他们也许贴出寻找“数据科学家”的招聘信息,但实际上是在寻找数据工程师或者商业分析师。查看这篇文章 The Data Industry: Who Does What,你可以了解到企业究竟在招聘时要什么岗位。
-
2、正确设定你的期望。如果你没有数据科学家、数据库或端对端方面的工作经历,直接申请数据科学家或分析师的职位是不现实的。请确保在申请时具备相关工作经历。不要因为无法立刻找到工作而气馁。相反,你应该保持学习,提升能力,并持续关注企业的招聘信息。
第八步:与时俱进
最后这一步有时候经常被大家遗忘。即是你已经在从事数据科学方面的工作,你也应该时刻牢记,数据科学需要持续地学习。这个领域总有新的进步,所以保持对周边事物的好奇心和信息灵敏度非常重要。所以不要忘记时常阅读社会媒体的评论报道,追踪行业大牛动态,总之就是要与时俱进。
数据科学领域的最新新闻,你可以从这些地方获取:KD Nuggets,Data Elixir,Data Science Weekly。行业大牛的推特也要经常查阅,比如: DJ Patil,Andrew Ng,Ben Lorica。
你还可以加入一些在线社区,及时与同行沟通。
比如 LinkedIn中的“大数据”、“分析学”、“商务智能”、“大数据分析”、“数据科学家”、数据挖掘、统计、大数据、数据可视化、数据科学“等等群组。
还有 Facebook 上的“数据科学入门”、“分析学”、“机器学习”、“数据挖掘”、“R语言”、“Python”等等群组。
Subeddits中还有一些“R/数据科学”、“R/stats”、“R/Python”等群组。
Via Kdnuggets
推荐阅读:
IBM 和 Slack 强强联手,开发更智能的数据分析聊天机器人
雷峰网原创文章,未经授权禁止转载。详情见。
原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/216632.html