本文转自雷锋网,如需转载请至雷锋网官网申请授权。
你是否对学习数据科学感兴趣,但不知道从哪里开始?如果是,那你来对地方了。
我遇到过许多对学习数据科学充满热情的人,但仅仅几周后,他们就放弃了学习。我想知道为什么一个人对一个领域如此热情却不去追求它?通过与他们中的一些人交谈,我了解到人们放弃学习的主要原因是:
-
为了成为一名数据科学家,他们要学习的课题太多了
-
他们遇到的领路人说,要成为数据科学家,必须是一个有才华的程序员、数学专家、应用统计学大师,并且非常熟练地使用panda、NumPy和其他python库。
这些甚至会吓到一个有经验的数据科学家,难怪他们会让试图学习数据科学的人放弃。上面的每一个话题就像一片海洋,当有人试图快速掌握它们时,他们会感到沮丧并放弃学习。真正的事实是,要想成为一名成功的数据科学家或成为一名数据科学家,你甚至需要掌握更多。
如何学习数据科学
要成为一名数据科学家,你需要从以下条目中学到足够多的知识:
-
Python或R编程的基础知识
-
如果选择Python,那么像panda和Numpy这样的库
-
可视化库,如ggplot、Seaborn和Plotly。
-
统计数据
-
SQL编程
-
数学,尤指线性代数和微积分
在下面的视频中,我提到了学习数据科学的分步指南。我已经解释了达到数据科学不同专业水平所需的知识深度。
https://youtu.be/5zec-qxfMvg
如何计划学习?哪些主题应该首先涉及?
让我来解释一下100天学习数据科学的计划。下面是使用Python学习数据科学的逐日计划,该计划跨度为100天,每天至少需要花费一个小时
第一天:安装工具
只要确保安装了所需的工具,并且您对接下来几周/几个月将要使用的工具感到舒适即可。如果选择Python则安装Anaconda,其中还会安装IDEs Jupyter笔记本和Spyder。如果你选择' R ',然后安装RStudio。试着在IDE中玩一玩,并熟练地使用它。比如,尝试理解包/库的安装、执行部分代码、清理内存等等。
第2天到第7天:数据科学的基础编程
下一步是学习基本的编程,下面是一些应该学习的主题:
-
创建变量
-
字符串数据类型和通常在字符串数据类型上执行的操作
-
数值数据类型、布尔值和运算符
-
集合数据类型列表、元组、集合和字典——理解它们之间的唯一性和差异非常重要。
-
If-Then-Else条件,For循环和While循环实现
-
函数和Lambda函数-它们各自的优点和区别
第8天到第17天: Pandas 库
了解 Pandas 库,在 Pandas 中需要了解的一些主题是:
-
创建数据帧,从文件读取数据,并将数据帧写入文件
-
从数据框架中索引和选择数据
-
迭代和排序
-
聚合和分组
-
缺失值和缺失值的处理
-
Pandas 的重命名和替换
-
在数据帧中连接、合并和连接
-
总结分析,交叉表格,和枢轴
-
数据,分类和稀疏数据
花10天时间彻底学习以上主题,因为这些主题在执行探索性数据分析时非常有用。在介绍这些主题时,请尝试深入粒度细节,比如理解合并和连接、交叉表和枢轴之间的差异,这样不仅可以了解它们中的每一个,还可以知道在何时和何处使用它们。
我为什么要学 Pandas?如果您从事任何数据科学项目,它们总是从探索性数据分析开始,以便更好地理解数据,而您在 Pandas 中介绍的这些主题将会派上用场。另外,因为Pandas有助于从不同的来源和格式读取数据,所以它们速度快、效率高,还提供了对数据集执行各种操作的简单功能。
第18天到第22天:Numpy Library
学会 Pandas 之后,下一个需要学习的重要库是Numpy。学习Numpy的原因是与List相比它们非常快。在Numpy中要涉及的主题包括:
-
数组的创建
-
索引和切片
-
数据类型
-
连接与分离
-
搜索和排序
-
过滤所需的数据元素
为什么学习Numpy很重要?Numpy能够以快速和高效的方式对数据执行科学操作。它支持机器学习算法中常用的高效矩阵运算,panda库也广泛使用了Numpy。
第23天到第25天:可视化
现在,我们需要花一些时间来理解和使用一些关键的可视化库,比如ggplot、Plotly和Seaborn。使用示例数据集并尝试不同的可视化,如柱状图、线形/趋势图、盒状图、散点图、热图、饼状图、柱状图、气泡图和其他有趣的或交互式可视化。
数据科学项目的关键是与涉众交流洞察力,而可视化是实现这一目的的很好的工具。
第26天到第35天:统计、实现和用例
下一个要讨论的重要主题是统计学,探索常用的描述性统计技术,如平均值、中位数、众数、范围分析、标准差和方差。
然后介绍一些更深层次的技术,比如识别数据集中的异常值和测量误差范围。
作为探索各种统计测试(如下所示)的最后一步,了解这些统计测试在现实生活中的应用:
-
F-test
-
ANOVA
-
卡方测试
-
T-Test
-
Z-Test
第36天到第40天:用于数据分析的SQL
现在是学习SQL的时候了,这很重要,因为在大多数企业用例中,数据将存储在数据库中,了解SQL将极大地帮助从系统中查询所需的数据进行分析。
您可以先安装一个开源数据库,比如MySQL,它会附带一些默认数据库,只需要处理数据并学习SQL。如果你能集中学习以下内容,那就太好了:
-
从表中选择数据
-
基于键连接来自不同表的数据
-
对数据执行分组和聚合功能
-
使用case语句和筛选条件
第41 - 50天:探索性数据分析(EDA)
在任何数据科学项目中,大约80%的时间用于此活动,因此最好花时间彻底学习此主题。为了学习探索性数据分析,这里不涉及一组特定的功能或主题,但是数据集和用例将驱动分析。因此,最好使用一些来自kaggle中主办的比赛的样本数据集,学习如何执行探索性分析。
学习探索性数据分析的另一种方法是编写关于数据集的问题,并尝试从数据集为它们找到答案。比如,如果我考虑最受欢迎的泰坦尼克号数据集,然后尝试寻找问题的答案,比如哪种性别/年龄/甲板的人有更高的死亡概率等等。你进行全面分析的能力会随着时间的推移而提高,所以要有耐心,慢慢地自信地学习。
到目前为止,您已经学习了数据科学家所需的所有核心技能,现在可以学习算法了。
数学怎么了?
是的,了解线性代数和微积分是重要的,但我宁愿不花时间学习数学概念,但当他们需要,你可以参考和温习你的技能,高中水平的数学将是足够的。例如,假设你正在学习梯度下降法在学习算法的同时你可以花时间学习它背后的数学知识。 因为如果你开始学习数学中的重要概念,那么它可能是非常耗时的,而且通过在需要的时候学习,你会学到足够的时间所需要的东西,但是如果你开始学习数学中的所有概念,那么你将会花费更多的时间,学到的东西将远远超过所需要的。
第51天到第70天:监督学习和项目实施
在开始的10天里,学习一些关键的算法,理解它们背后的数学原理,然后在接下来的10天里,专注于通过开发一个项目来学习。这节课要讲的一些算法有:
-
线性回归和逻辑回归
-
决策树/随机森林
-
支持向量机(SVM)
在最初的10天里,重点应该是理解你所选择的算法背后的理论。然后花些时间了解每个算法比其他算法更适合的场景,比如当数据集中有很多分类属性时,决策树是最好的。
然后选择一个解决的例子在Kaggle,你将能够找到大量解决的例子尝试重新执行他们,但仔细理解每一行代码,并理解他们的原因。到目前为止,您已经获得了良好的理论知识,以及从解决的示例的工作知识。
最后一步,选择一个项目,并实现一个有监督的学习算法,从数据收集、探索性分析、特性工程、模型构建和模型验证开始。肯定会有很多问题和问题,但当你完成项目时,你会对算法和方法有很好的了解。
第71天到第90天:无监督学习和项目实施
现在是时候关注非监督学习了,类似于在监督学习中使用的方法,先花几天时间理解你在非监督学习中选择的算法背后的概念,然后通过实施一个项目来学习。
这里要讲的算法是,
-
聚类算法-用于在数据集中识别聚类
-
关联分析——用于识别数据中的模式
-
主成分分析——用于减少属性的数量
-
推荐系统-用于识别相似的用户/产品并进行推荐
最初的日子里,应把重点放在理解上面的算法和技术也了解他们每个人的目的,他们可以使用的场景像主成分分析通常用于数据集降维,当你工作在一个非常大的列数和你想要减少,但仍保留信息和推荐系统在电子商务流行基于客户的购买模式可以推荐他们可能感兴趣的其他产品来增加销量。
当您熟悉了可以使用它们的理论和场景后,就可以选择一个已解决的示例,并通过逆向工程来学习,即理解每一行代码并重新执行它们。
作为最后一步,现在是选择用例并基于您目前所学实现的时候了。在完成项目/用例时,你会学到很多东西,你会对这些算法有更好的理解,这将永远伴随着你。
第91天到第100天:自然语言处理基础
利用这段时间关注非结构化/文本数据的分析和用例。值得花时间在这里的事情很少
-
学习使用API从公共源获取数据
-
执行一些基本的情绪分析——可以使用来自twitter API的数据来提取特定标签的tweet,然后可以计算这些tweet背后的情绪和情绪
-
主题建模——当有大量的文档,并且您想要将它们分组到不同的类别时,这种方法非常有用
就是这样!现在,您已经介绍了所有重要的概念,可以申请任何数据科学工作了。我已经在我的YouTube频道上开始了为期100天的学习数据科学的教程,如果你感兴趣,请加入我,在这里开始你的学习数据科学的教程。
https://youtu.be/VaXijSN_SJc
常见问题
有人能在100天内成为数据科学家?
是的,就像任何人都可以在几天内学会游泳一样,任何人都可以在100天甚至更短的时间内学会数据科学。但是就像游泳一样,要想成为一名优秀的游泳运动员或者奥运会游泳运动员,必须通过努力和不断的练习,数据科学也是一样,通过不断的练习和努力,你才能成为一名专家。
如果我沿着这教程走下去,我能学到多少?
在教程结束时,您将有足够的知识来从事典型的数据科学项目。这样,您就打破了学习障碍,因此只需付出最小的努力和最少的支持,您就能够继续学习数据科学中的高级主题。
结束前的最后信息
一开始,事情可能看起来太复杂,不要不知所措,只要一步一个脚印,继续你的学习之旅,这可能需要一些时间,但你一定会到达你的目的地。