一分钱不用花,完整学习数据科学(附相关资源)

dejuanZ 2019-10-27

全文共4254字,预计学习时长8分钟

一分钱不用花,完整学习数据科学(附相关资源)

图源:Josh Appel/Unsplash

在传统的实体院校中,如果想要学习数据科学并获得硕士学位,需要花费3至12万美元。即使是网络课程也不便宜,至少需花费9千美元。如果你拿不出这么多学费,该怎么学习数据科学呢?

如果你不想拿出或拿不出大量资金,以支持自己继续接受正规教育,那么请参考本文。

课程主要包括三部分:技术、理论和实践。课程所需的每个资源都会提供链接,此外还会附赠一些其他“低成本”的替代选项,并估算其价格。如果你想花点小钱加快学习进度,这些资源会派上用场。

一分钱不用花,完整学习数据科学(附相关资源)

技术

课程的第一部分将侧重于技术。相比从学习数学理论入手,首先学习技术更有利于培养实用第一的观念。在数据科学领域,Python是迄今为止应用最广泛的编程语言。在2018年展开的Kaggle机器学习/数据科学现状调查中,83%的受访者表示他们每天都会使用Python。因此我建议初学者重点学习Python,不过也得花点时间学习别的语言(例如R)。

学习Python基础知识

在使用Python之前,首先需要对相关知识有一个基本了解,例如可以参与一些Python入门课程。相关课程很多,但我最推荐的是Codeacademy上的课程,因为它们始终支持学生在浏览器内实践编码。

建议通过参与入门课程来学习Python(https://www.codecademy.com/learn/learn-python),其中主要涵盖基本语法、功能、控制流、循环、模块和类。

用Python进行数据分析

接下来,我们需要深入了解如何用Python进行数据分析。可用的相关资源也很多。

建议大家首先至少对dataquest.io(https://app.dataquest.io/dashboard)上数据分析人员课程的免费部分进行学习。Dataquest为数据分析人员、数据科学家和数据工程师提供了完整的学习途径,很多内容都是免费的,尤其是数据分析人员课程。如果资金充足,最好对几个月的课程进行高级订阅。课程价格从每月24.5到49美元不等,具体取决于支付方式。如果资金允许,进行年度订阅会更好。

一分钱不用花,完整学习数据科学(附相关资源)

Dataquest平台

用Python进行机器学习

如果直接购买Dataquest上的全套数据科学课程,其中也会包括机器学习课程,能帮助你掌握用Python进行机器学习的基础知识。除此之外,还有许多免费资源可利用,本文接下来主要介绍scikit-learn,这是迄今为止最常用的机器学习Python库。

scikit-learn的核心开发人员之一Andreas Mueller。在Github存储库(https://github.com/amueller)中发布了课程的相关学习资料,包括PPT、课程笔记及学生可以使用的笔记本。这些资料都非常实用。

接下来大家可以阅读scikit-learn文档中的一些教程,然后再试着建构一些实用的机器学习应用程序,并学习背后的理论知识。这些将会在后文中提及。

SQL

如果你想成为一名数据科学家,掌握SQL非常重要,因为在数据建模的基本过程中,第一步是提取数据,这通常涉及运行SQL对数据库进行查询。同样的,如果你未购买Dataquest完整课程,下文会提供一些免费资源。

Codeacamdemy中有一套免费的SQL入门课程,其中也包含了非常实用的浏览器内编码功能。如果你还想了解云数据库查询,可以使用Google Cloud中的BigQuery,该功能有免费试用的机会,可搜索大量公共数据集和一些实用文档(https://cloud.google.com/bigquery/docs/tutorials)。

一分钱不用花,完整学习数据科学(附相关资源)

Codeacademy上的SQL课程

R语言

想要全面成为一名数据科学家,仅仅学习Python还不够,应当掌握多样化的语言,例如R。Codeacademy的免费计划中就有一套R语言入门课程(https://www.codecademy.com/learn/learn-r)。值得注意的是,与Dataquest类似,Codeacademy也为专业账户提供了完整的数据科学课程(费用在每月15.99到31.99美元不等,具体取决于一次性支付的月数)。Dataquest上的课程会更加全面,但如果想省钱,专注于Codeacademy这一个学习平台或许会更好。

软件工程

掌握软件工程的相关技能和实践技巧有助于提高代码的可读性和可扩展性。此外,如果要将模型投入生产,就必须得写出已经过反复测验的高质量代码,还要使用例如版本控制之类的工具。

这方面有两个很棒的免费资源。Python like you mean it(https://www.pythonlikeyoumeanit.com/Module5_OddsAndEnds/Writing_Good_Code.html)中包含的内容有PEP8编发规范及文档,还很好地涵盖了面向对象的编程。

虽然scikit-learn中contribution guidelines(https://scikit-learn.org/stable/developers/contributing.html)的初衷是为了促进库的发展,但实际上它也很好地涵盖了最佳实践案例,包括Github、单元测试和调试等主题,而且这些都是在数据科学应用程序的范畴内编写的。

深度学习

想要全面了解深度学习,fast.ai(https://www.fast.ai/)是最好的选择。它完全免费,而且没有任何广告。这一课程包括机器学习入门、实用深度学习入门、计算线性代数入门、自然语言处理入门(代码优先)。其中所有的课程都遵循实用第一的教学原则,因此十分推荐。

一分钱不用花,完整学习数据科学(附相关资源)

Fast.ai platform

一分钱不用花,完整学习数据科学(附相关资源)

理论

在学习技术时,你往往会接触到一些运行代码背后的理论。我建议可以在实践过程中一起学习理论。我的方式是去学习一些可以实现某种技术的代码。以KMeans为例,一旦进入学习状态,我就会对其中的概念进行深入学习,例如惯性。scikit-learn文档(https://scikit-learn.org/stable/modules/clustering.html#k-means)中就介绍了算法背后所有的数学概念。

这部分将会介绍一些重要的基础理论,供读者在继续深入实践的同时进行理论学习。

可汗学院(khan academy)中几乎免费介绍了后文中所有列出的概念。注册时,你可以定制自己想学习的科目,这样就可以获得一套专属于你的学习课程。将下图中的所有框都选中,就能大致了解大多数概念。

一分钱不用花,完整学习数据科学(附相关资源)

The Khan Academy

数学

微积分

维基百科将微积分定义为“不断变化的数学研究”。换言之,微积分能够找出函数之间的模式,例如导数可以帮助了解函数随时间的变化趋势。

许多机器学习算法利用微积分来优化模型性能。接触过机器学习的人可能听说过梯度下降,这是通过迭代法来确定模型的参数值,以找出能够最小化成本函数的最佳值。梯度下降就是微积分应用于机器学习的一个绝佳案例。

你需要学习的概念:

导数

• 几何定义

• 计算函数的导数

• 非线性函数

链式法则

•复合函数

•复合函数导数

•多个函数

梯度

•偏导数

•方向导数

•积分

线性代数

许多流行的机器学习方法,包括XGBOOST,都使用矩阵来存储输入、处理数据。矩阵及向量空间和线性方程共同组成了数学的一个分支,称为线性代数。为了搞清楚哪些机器学习方法是有效的,深入了解线性代数大有裨益。

你需要学习的概念:

向量和空间

•向量

•线性组合

•线性依赖性和独立性

•矢量点和向量积

矩阵转换

•函数和线性转换

•矩阵乘法

•反函数

•转置矩阵

数据

下面列出了你需要了解的重要概念:

描述性统计/摘要统计

•如何汇总数据样本

•不同的分布类型

•偏度、峰度、集中趋势(例如平均值、中位数、众数)

•如何测度依赖性及变量之间的关系,例如相关性和协方差

实验设计

•假设检验

•采样

•重要性检验

•随机性

•概率

•置信区间和两样本推断

机器学习

•斜率推断

•线性和非线性回归

•分类

一分钱不用花,完整学习数据科学(附相关资源)

实践

课程的第三部分只与实践有关。为了真正掌握上文提到的概念,你需要找到一些与现实世界中应用程度高度相似的项目,并将所学技能付诸实践。在此过程中,你可能会遇到一些问题,例如数据丢失、数据错误,但也会在此基础上扎实专业基础。因此在这一部分,我将列出一些可以免费获取实践经验的资源。

“但是,充分实践的目标不仅是达到你的潜能,更在于激发你的潜能,让曾经的不可能变为可能。这要求一种极具挑战性的动态平衡,你需要走出舒适区,去强迫自己的大脑和身体适应环境。”——Anders Ericsson,《顶端:新专业科学的秘密》(https://www.goodreads.com/work/quotes/46312952)

Kaggle等

参与机器学习竞赛是练习构建机器学习模型的好方法,主办方会为参赛选手提供各种数据集,每个数据集都对应一个等待解决的特定问题,也有参赛选手的积分排行榜。排行榜可帮助你衡量自己在开发模型方面的知识是否扎实,还可以帮助你发现自己未来需要改进的地方。

除Kaggle外,还有一些可参与机器学习竞赛的平台,例如Analytics Vidhya和DrivenData。

一分钱不用花,完整学习数据科学(附相关资源)

DrivenData的竞赛页面

UCI机器学习存储库

UCI机器学习存储库(https://archive.ics.uci.edu/ml/index.php)中有大量向公众开放的数据集,可供用户构建自己的数据项目,其中可以包括数据分析模型和机器学习模型,甚至还可以尝试使用Web前端构建已部署模型。同时,你也可以将自己的项目存储在Github等公众平台上,使这一项目成为你经历档案的一部分,这在未来的工作申请中或许会有助于展示你的才能。

一分钱不用花,完整学习数据科学(附相关资源)

UCI 存储库

参与开源项目的建构

可以考虑的另一选择是参与开源项目的建构。许多Python库的维护都依赖特定社群,这些社群成员经常在聚会或会议上举行黑客马拉松,甚至对初学者开放。参加这些项目时,你和其他成员可以互相借鉴,共同进步,这无疑会为你提供实践环境,有助于丰富你的实践经验。Numfocus就是一个很好的例子。

一分钱不用花,完整学习数据科学(附相关资源)

留言 点赞 关注

我们一起分享AI学习与发展的干货

如需转载,请后台留言,遵守转载规范

相关推荐