如何正确学习数据科学中的 python

做者 | skura
来源 | AI开发者

大多数有抱负的数据科学家是经过学习为开发人员开设的编程课程开始认识 python 的,他们也开始解决相似 leetcode 网站上的 python 编程难题。他们认为在开始使用 python 分析数据以前,必须熟悉编程概念。html

资深数据分析师 Manu Jeevan 认为,这是一个巨大的错误,由于数据科学家使用 python 来对数据进行检索、清洗、可视化和构建模型,而不是开发软件应用程序。实际上,为了完成这些任务,你必须将大部分时间集中在学习 python 中的模块和库上。他认为,学习数据科学的正确姿式应该以下文,AI 开发者进行了编译整理。python

请按照下面这个步骤来学习数据科学的 python。算法

配置编程环境

Jupyter Notebook 是开发和展现数据科学项目的强大编程环境。sql

在电脑上安装 Jupyter Notebook 最简单的方法是经过 Anaconda 进行安装。Anaconda 是数据科学中使用最普遍的 python 工具,它预装了全部最流行的库。数据库

你能够浏览标题为「A Beginner’s Guide to Installing Jupyter Notebook Using Anaconda Distribution」的博客文章(https://medium.com/better-programming/beginners-quick-guide-for-handling-issues-launching-jupyter-notebook-for-python-using-anaconda-8be3d57a209b),了解如何安装 Anaconda。安装 Anaconda 时,请选择最新的 python 3 版本。编程

安装完 Anaconda 后,请阅读 Code Academy 的这篇文章(https://www.codecademy.com/articles/how-to-use-jupyter-notebooks),了解如何使用 Jupyter Notebook。数组

只学习 python 的基础知识

Code Academy 有一门关于 python 的优秀课程,大约须要 20 个小时才能完成。你没必要升级到 pro 版本,由于你的目标只是熟悉 python 编程语言的基础知识。课程地址:https://www.codecademy.com/learn/learn-python-3网络

NumPy 和 Pandas,学习的绝佳资源

在处理计算量大的算法和大量数据时,python 速度较慢。你可能会问,既然如此那为何 python 是数据科学最流行的编程语言?数据结构

答案是,在 python 中,很容易以 C 或 Fortran 扩展的形式将数字处理任务转移到底层。这正是 NumPy 和 Pandas 所作的事情。机器学习

首先,你应该学会 NumPy。它是用 python 进行科学计算的最基本的模块。NumPy 支持高度优化的多维数组,这是大多数机器学习算法最基本的数据结构。

接下来,你应该学习 Pandas。数据科学家花费大部分时间清洗数据,这也被称为数据整。

Pandas 是操做数据最流行的 python 库。Pandas 是 NumPy 的延伸。Pandas 的底层代码普遍使用 NumPy 库。Pandas 的主要数据结构称为数据帧。

Pandas 的创造者 Wes McKinney 写了一本很棒的书,叫作《Python for Data Analysis》(https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython-ebook/dp/B075X4LT6K)。在书中的第 四、五、七、8 和 10 章能够学习 Pandas 和 NumPy。这些章节涵盖了最经常使用的 NumPy 和 Pandas 特性来处理数据。

学习使用 Matplotlib 可视化数据

Matplotlib 是用于建立基本可视化图形的基本 python 包。你必须学习如何使用 Matplotlib 建立一些最多见的图表,如折线图、条形图、散点图、柱状图和方框图。

另外一个创建在 Matplotlib 之上并与 Pandas 紧密结合的好的绘图库是 Seaborn。在这个阶段,我建议你快速学习如何在 Matplotlib 中建立基本图表,而不是专一于 Seaborn。

我写了一个关于如何使用 Matplotlib 开发基本图的教程,该教程由四个部分组成。

你能够经过这些教程来掌握 Matplotlib 的基本知识。

简而言之,你没必要花太多时间学习 Matplotlib,由于如今公司已经开始采用 Tableau 和 Qlik 等工具来建立交互式可视化。

如何使用 SQL 和 python

数据有组织地驻留在数据库中。所以,你须要知道如何使用 SQL 检索数据,并使用 python 在 Jupyter Notebook 中执行分析。

数据科学家使用 SQL 和 Pandas 来操纵数据。有一些数据操做任务使用 SQL 就能够很容易地执行,而且有一些任务可使用 Pandas 高效地完成。我我的喜欢使用 SQL 来检索数据并在 Pandas 中进行操做。

现在,公司使用 Mode Analytics 和 Databricks 等分析平台来轻松地使用 python 和 SQL。

因此,你应该知道如何一块儿有效地使用 SQL 和 python。要了解这一点,你能够在计算机上安装 SQLite 数据库,并在其中存储一个 CSV 文件,而后使用 python 和 SQL 对其进行分析。

这里有一篇精彩的博客文章,向你展现了如何作到这一点:Programming with Databases in Python using SQLite(https://medium.com/analytics-vidhya/programming-with-databases-in-python-using-sqlite-4cecbef51ab9)。

在浏览上述博客文章以前,你应该了解 SQL 的基础知识。Mode Analytics 上有一个很好的关于 SQL 的教程:Introduction to SQL(https://medium.com/analytics-vidhya/programming-with-databases-in-python-using-sqlite-4cecbef51ab9)。经过他们的基本 SQL 部分,了解 SQL 的基本知识,每一个数据科学家都应该知道如何使用 SQL 有效地检索数据。

学习和 python 相关的基本统计学知识

多数有抱负的数据科学家在不学习统计学的基础知识的状况下,就直接跳到机器学习知识的学习中。

不要犯这个错误,由于统计学是数据科学的支柱。并且,不少数据科学家学习统计学只是学习理论概念,而不是学习实践概念。

个人意思是,经过实践概念,你应该知道什么样的问题能够用统计学来解决,了解使用统计数据能够解决哪些挑战。

如下是你应该了解的一些基本统计概念:

抽样、频率分布、平均值、中位数、模式、变异性度量、几率基础、显著性检验、标准差、z 评分、置信区间和假设检验(包括 A/B 检验)

要学习这些知识,有一本很好的书能够看看:《Practical Statistics for Data Scientists: 50 Essential Concepts》(https://www.amazon.com/Practical-Statistics-Data-Scientists-Essential/dp/9352135652)。不幸的是,本书中的代码示例是用 R 编写的,可是不少人包括我本身在内使用的是 Python。

我建议你阅读本书的前四章。阅读本书的前 4 章,了解我前面提到的基本统计概念,你能够忽略代码示例,只了解这些概念。本书的其他章节主要集中在机器学习上。我将在下一部分讨论如何学习机器学习。

大多数人建议使用 Think Stats (https://www.amazon.com/Think-Stats-Allen-B-Downey/dp/1449307116)来学习 python 的统计知识,但这本书的做者教授了本身的自定义函数,而不是使用标准的 python 库来进行统计知识讲解。所以,我不推荐这本书。

接下来,你的目标是实如今 Python 中学习的基本概念。StatsModels 是一个流行的 python 库,用于在 python 中构建统计模型。StatsModels 网站提供了关于如何使用 Python 实现统计概念的优秀教程。

或者,你也能够观看 Gaël Varoquaux 的视频。他向你展现了如何使用 Pandas 和统计模型进行推理和探索性统计。

使用 Scikit-Learn 进行机器学习

Scikit-Learn 是 Python 中最流行的机器学习库之一。你的目标是学习如何使用 Scikit Learn 实现一些最多见的机器学习算法。

你应该像下面这样作。

首先,观看 Andrew Ng 在 Coursera 上的机器学习课程(https://www.coursera.org/learn/machine-learning)的第 一、二、 三、6,、7 和第 8 周视频。我跳过了关于神经网络的部分,由于做为初学者,你必须关注最通用的机器学习技术。

完成后,阅读「Hands-On Machine Learning with Scikit-Learn and TensorFlow」一书(https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn-TensorFlow/dp/1491962291)。你只需浏览这本书的第一部分(大约 300 页),它是最实用的机器学习书籍之一。

经过完成本书中的编码练习,你将学习如何使用 python 实现你在 Andrew Ng 课程中学习到的理论概念。

结论

最后一步是作一个涵盖上述全部步骤的数据科学项目。你能够找到你喜欢的数据集,而后提出有趣的业务问题,再经过分析来回答这些问题。可是,请不要选择像泰坦尼克号这样的通用数据集。你能够阅读「19 places to find free data sets for your data science project」来查找合适的数据集(https://www.dataquest.io/blog/free-datasets-for-projects/)。

另外一种方法是将数据科学应用到你感兴趣的领域。例如,若是你想预测股票市场价格,那么你能够从 Yahoo Finance (https://www.scrapehero.com/scrape-yahoo-finance-stock-market-data/)中获取实时数据,并将其存储在 SQL 数据库中,而后使用机器学习来预测股票价格。

若是你但愿从其它行业转行到数据科学,我建议你完成一个利用你的领域专业知识的项目。关于这些,我在之前的博客文章"A Step-by-Step Guide to Transitioning your Career to Data Science – Part 1"(https://www.kdnuggets.com/2019/05/guide-transitioning-career-data-science-part-1.html) 和"A Step-by-Step Guide to Transitioning your Career to Data Science – Part 2"(https://www.kdnuggets.com/2019/06/guide-transitioning-career-data-science-part-2.html)中有提到过。

相关文章
相关标签/搜索