笔者邀请您,先思考:
1 如何成为数据科学家?
数据科学教育家Jose Portilla提供了关于成为数据科学家的权威性指南,其中包括从获取特定技能到寻找第一份工作,再到掌握面试机会的各种资源。
你好!我是Jose Portilla,Udemy的讲师,有超过25万名学生注册了各种各样的课程,包括Python的数据科学和机器学习、R编程的数据科学、Python的大数据等等。
几乎每天都有学生问我这个问题:
我应该怎样做才能成为一名数据科学家?
在这篇文章中,我将尽我最大的努力来帮助回答这个问题,并指出可以帮助你找到答案的资源,也希望这篇文章可以可以快速连接到我的学生。
我最近还在写一本关于数据科学家采访的书!看看这里。
现在继续这篇文章!我将这些步骤分解成一些关键的主题,并讨论了每个主题的有用细节。
“获得成功的秘诀就是开始。” - 马克吐温
如果您有兴趣成为数据科学家,最好的建议是立即开始为您的旅程做准备!花时间了解核心概念不仅对面试非常有用,而且还可以帮助您确定您是否真正对这一领域感兴趣。
在开始成为数据科学家的道路之前,重要的是你要对自己诚实地说明为什么要这样做。您可能应该问自己一些问题:
问自己这些问题并对自己诚实。如果您回答是,那么您即将成为数据科学家!
成为数据科学家的道路很可能会花费你一些时间,具体取决于您以前的经验和网络。利用这两者可以帮助您更快地完成数据科学家的角色,但要随时准备好学习!现在让我们开始讨论一些更切实的主题!
“不要担心你在数学方面的困难。 我可以向你保证,我的生活还会更大。“ - 爱因斯坦
如果你想进入数据科学,你应该熟悉的关于数学的主要话题是概率,统计和线性代数。随着您对统计学习(机器学习)等其他主题的了解越来越多,这些核心数学基础将成为您继续学习的基础。让我们简要介绍一下,并为您提供一些可供学习的资源!
概率 - 衡量事件发生的可能性。许多数据科学都是基于尝试测量事件的可能性,从点击广告的几率到装配线上零件失败的可能性。
对于这个经典主题,我建议读一本书,例如Sheldon Ross的《A First Course in Probability》或 E.T. Jaynes的《Probability Theory》。由于这些是教科书,如果你直接从亚马逊购买新产品,它们可能相当昂贵,所以我建议在网上或pdf版本查看旧版本以节省一些钱!
如果您更喜欢通过视频格式学习,您还可以查看可汗学院关于概率的视频系列。您还可以查看麻省理工学院关于概率和统计学的OpenCourseWare讲座。只需简单搜索,即可在Youtube上轻松找到。
统计学 - 一旦掌握了概率理论,就可以继续学习统计学,这是数学的一般分支,用于分析和解释数据。充分了解统计中使用的技术需要您理解概率和概率符号!
再说一次,我更像是一个教科书的人,幸运的是有两本很棒的在线教科书完全免费供你参考:
如果你更喜欢老式的教科书,我喜欢David Freedman的《Statistics》。我建议使用本书作为您的主要基础,然后查看此处列出的其他资源,以深入了解其他主题(如ANOVA)。
对于实践问题,我非常喜欢使用Shaum的提纲系列(你可以在这个系列中找到概率和统计学的书籍)。
如果您更喜欢视频,请查看Brandon Holtz关于Youtube统计数据的精彩系列!
线性代数 - 是数学的分支,涵盖了向量空间和这些空间之间的线性映射的研究。它在机器学习中大量使用,如果你真的想要理解这些算法是如何工作的,你需要建立对线性代数的基本理解。
我推荐查看Strang的《Linear Algebra and Its Applications》,这是一本很棒的教科书,也可以在MIT线性代数课程中使用,你可以通过OpenCourseWare访问!有了这两个资源,您应该能够在线性代数中建立坚实的基础。
根据您的位置和工作流程,您可能不需要深入研究线性代数的一些更复杂的细节,一旦您更熟悉编程,您会发现某些库倾向于处理大量的线性代数任务。但了解这些算法的工作原理仍然很重要!
“通过代码行测量编程进度就像按重量衡量飞机制造进度一样。” - 比尔盖茨
数据科学界主要采用R和Python作为编程的主要语言。 其他语言如Julia和Matlab也被使用,但R和Python是迄今为止在这个领域最受欢迎的语言。
在本节中,我将描述编程和数据科学的一些主要基本主题,然后指出用于R和Python的主要库!
开发环境
这个主题非常依赖于您的个人偏好,我将简要介绍一些使用R和Python进行数据科学开发环境(IDE)的更流行的选项。
Python - 由于Python是一种通用编程语言,因此可以使用许多选项!您可以使用纯文本编辑器,如Sublime Text或Atom,然后根据自己的喜好进行自定义,我个人将此方法用于大型项目。另一个流行的python IDE是来自JetBrains的PyCharm,它提供了一个免费的社区版本,为大多数用户提供了大量功能。我最喜欢的Python环境必须是Jupyter笔记本,以前称为iPython笔记本,这个笔记本环境使用单元格来分解代码并提供即时输出,因此您可以轻松地与代码和可视化进行交互!尽管其他语言一直在改进,但Python是迄今为止所有这些中最好的支持! Jupyter笔记本在数据科学和机器学习领域非常受欢迎。我将它用于我所有的Python课程,大多数学生都非常喜欢它。虽然可能不是需要部署的大型项目的最佳解决方案,但它对于学习环境来说非常棒。
至于在您的计算机上安装Python,您可以随时使用官方源代码 - python.org,但我通常建议使用Anacondadistribution,它将包含我将在本节中讨论的许多软件包!
R - RStudio可能是R最受欢迎的开发环境。它背后有一个很棒的社区,它的基本完整版本是完全免费的。它可以很好地显示可视化,为您提供了许多自定义体验的选项。这几乎是我用R去做的事情! Jupyter笔记本也支持R内核,虽然我已经使用它们,但我发现与Jupyter Notebook的Python功能相比缺乏经验。
数据分析
Python - 对于数据分析,两个库是Python的主要工具:NumPy和Pandas。 NumPy是一个数字科学计算软件包,它是Python Data Science生态系统中几乎所有其他Python软件包的基础。 Pandas是一个直接由NumPy构建的数据分析库,旨在模仿许多R的内置功能,例如DataFrames!您可以将其视为Excel的超级版本,它允许您快速清理和分析数据。如果您成为使用Python的数据科学家,熊猫将很快成为您的主要工具之一!这是我最喜欢的Python库!我还建议查看SciPy以获取PyData系统中库的详细信息和链接。
R - 在大多数情况下,R已经内置了许多数据分析功能,例如Dataframes!但是R社区也创建了许多有用的软件包来帮助以更有效的方式处理数据!这些软件包被称为“tidyverse”,它是一组有用的数据科学软件包,所有这些软件包都设计有类似的数据处理理念,这意味着它们可以很好地协同工作。这些软件包包括用于数据操作的dplyr,用于清理数据的tidyr,用于读取数据的readr,以及用于改善R的一些内置功能的包,如purr和tibble。学习tidyverse包是使用R的数据科学家必须的! ggplot2也是tidyverse的一部分,但是用于数据可视化,所以让我们接下来跳到那个主题吧!
数据可视化
Python - Python可视化的“祖父”是matplotlib。创建Matplotlib是为了提供Python的可视化API,让人联想到MatLab中使用的样式。如果您之前使用过MatLab进行可视化,那么过渡将会非常自然。但是,由于其庞大的功能库,matplotlib创建了许多其他可视化库,以简化操作或提供更具体的功能!
Seaborn是一个很棒的统计绘图库,可以很好地处理pandas并使用matplotlib编写。它只需几行代码即可创建漂亮的图形。 Pandas还具有内置的matplotlib绘图功能!
Plotly和Bokeh可用于使用Python创建交互式图。我建议两者兼顾,看看你喜欢哪一个!
R - 到目前为止,最流行的R绘图库是ggplot2。它的设计哲学及其基于图层的API使其易于使用,并允许您基本上制作您能想到的任何主要图表!同样很棒的是可以轻松使用Plotly,允许您通过使用ggplotly快速将ggplot2图转换为交互式可视化!
机器学习
Python - SciKit-learn是最流行的Python机器学习库,内置算法和模型用于分类,回归,聚类,降维,模型选择和预处理。如果您对构建统计推断模型更感兴趣(例如在线性回归后分析p值),您应该查看statsmodels,它也是处理时间序列数据的绝佳选择!对于深度学习,请查看TensorFlow,PyTorch或Keras。由于其简化的API,我建议Keras适合初学者。对于深度学习主题,您应该始终参考官方文档,因为这是一个变化非常快的领域!
R - 初学者数据科学家R的一个问题是它在机器学习方面有很多选择。每个主要算法都可以有自己独立的包,每个包都有不同的关注点。当您开始时,我建议首先使用caret包,它为分类和回归任务提供了一个很好的接口。一旦你转向无监督学习技术,如聚类,最好的办法是快速谷歌搜索,看看哪些软件包最适合你打算使用的技术,你甚至会发现R已经有了一些内置的基本算法,例如kmeans聚类。
在哪里学习这些库和技能?
我全面教授这些主题,您可以使用以下链接查看课程95%的折扣。
我的Python数据科学和机器学习训练营:
基于Python的数据科学和机器学习训练营 了解如何使用NumPy,Pandas,Seaborn,Matplotlib,Plotly,Scikit-Learn,机器学习,Tensorflow等等!
我的R数据科学,可视化和机器学习课程:
基于R的数据科学与机器学习训练营
学习如何将R编程语言用于数据科学和机器学习以及数据可视化!
现在我们已经了解了编程主题的一般背景,让我们讨论实际找到数据科学工作的途径!
“旅途中的好伙伴让路看起来更短。” - Izaak Walton
寻找数据科学家职位可能需要一段时间,最好开始构建您的网络! 开始构建网络的最佳方法之一是参加涉及数据科学的聚会!但是你不需要严格限制于数据科学,你应该参加与数据科学相关的任何主题的聚会,比如Python聚会,可视化聚会等。
会议是连接数据科学家的另一种很好的方式,而许多会议可能会非常昂贵,会议通常会在展会期间举办招聘会。如果您只打算参加职业展览会,您通常可以获得折扣甚至是免费的会议通行证。会议还经常举办研讨会,让您学习新技能!
您还应该开始查看在线社区和资源,像O'Reilly数据订阅,Kaggle和KDnuggets这样的资源可以帮助您了解数据科学社区正在发生的事情。播客是另一种开始学习数据科学社区的好方法。我建议查看Talking Machines,Partially Derivatives和O'Reilly Data Show。
“如果我们有数据,让我们看看数据。 如果我们所有人都有意见,那就让我们去吧。“ - James L. Barksdale
所以你已经学会了你的技能,网络化,现在已经准备好开始作为数据科学家工作了!
求职
第一步是开始寻找新工作,其中很多都会根据您的个人情况和目标而有所不同,所以我会尽量保持一般的建议。
同时开始搜索和练习技能的最佳方法之一是参与Kaggle挑战并发布有关您的试验的博客。一些Kaggle挑战甚至可以直接把面试作为奖品的一部分!即使没有奖品,它在真实数据集上的宝贵经验!请注意,Kaggle还拥有自己的数据科学家工作板。
通过UpWork等网站进行自由职业,为开源项目做贡献,以及回答有关StackOverflow的问题,这是让招聘人员了解您的存在的另一个好方法。
您还需要确保您的简历,LinkedIn和Github都已更新,以反映您的新技能和项目。
对于一般的求职利用类似Indeed或DataJobs网站,尝试网站如Triplebyte直接给你一系列的技术访谈,可以快速通过很多公司的初次面试阶段。您还可以使用AngelList Job board和HackerNews Job Board查看工作板。
面试
无论好坏,许多公司仍然依赖涉及数据结构和算法的经典面试问题。要准备这些问题,您应该查看主题,如数组,图表,递归,链接列表,堆栈等…您应该参考书籍或课程,并经历许多练习问题!我有关于这些主题的课程,您可以通过查看我的热门github存储库免费查看一些材料,其中包含许多带有练习题和解决方案的jupyter笔记本!
基于Python的算法,数据结构和面试。
您还可以查看leetcode上的练习题列表
问题 - LeetCode
提高您的编码技能并快速找到工作。这是扩展知识并做好准备的最佳场所……(leetcode.com)
对于更具体的数据科学问题,您需要熟悉各种主题,例如概率问题,R或Python编程问题,SQL查询以及可能的大数据管理(Spark等主题)。您还应该熟悉建模和选择参数背后的原因,例如L1和L2正则化之间的差异。
您在阅读中有什么想法,请留言。 原文链接: https://www.kdnuggets.com/2017/08/become-data-scientist-definitive-guide.html
版权声明:作者保留权利,严禁修改,转载请注明原文链接。