跳至主要内容

40+ 个面向数据科学的 Python 统计资源

涵盖八大统计主题的 Python 学习资源清单,助您在数据科学领域脱颖而出
· 13分钟 阅读

使用 AI 探索

数据科学与统计学

根据我们的“8(个简单)步骤学数据科学”信息图,学习数据科学的第一步之一是深入理解统计学、数学与机器学习。

如果您还记得,下一步是学习如何编程。

但当您已经掌握了用于数据科学所需的全部 Python 知识,就该巩固您所获得的这些知识了。

本博文所列并配套资源的统计学主题包括:

此清单并不穷尽数据科学中使用的统计学内容,但足以帮助您起步。:) 

顺带一提,如果您仍在寻找用来开启数据科学 Python 学习的资源,建议考虑我们的Intro to Python For Data Science课程。它将帮助您用 Python 应用统计学。 

为数据科学学习统计学非常注重实践,因此,别忘了也要(继续)专注于练习您在数据科学旅程之初可能已经学过的理论概念。

不过,统计学与数据科学之间究竟有何区别?

二者常被混为一谈,也有人认为并无区别,数据科学家其实就是统计学家。

但撇开这些观点不谈,多数人都能同意:统计学是数据科学所用的核心组成部分之一,也是其基础之一。

用 Python 学习统计学

今天的文章将聚焦如何用 Python 学习统计学。包括您在使用 Python 的数据科学旅程中需要探索的统计分析主题。

为什么选择 Python?

R 是学习统计学的不错起点。它是为统计计算与制图而开发,因此为用户提供了大量统计包。另一方面,Python 是一门通用语言,应用广泛。

然而,您同样可以用 Python 学习统计学。

有些人选择 Python 是因为其性能,或因为它也能完成许多 R 能做的事情。 

但从本质上说,这门语言的流行度正在上升,可用于数据科学的软件包数量在近年也显著增加。 

简言之,使用 Python 进行统计分析绝对有其理由。

您最终选择的工具,只取决于您要做的分析类型。

那么,准备好用 Python 开始统计学习了吗?

附注:如果您也在寻找学习 R 统计学或 R 的资源,请查看 DataCamp 的开放课程或 Intro to Statistics With R。


学习用于数据科学的 Python 统计学


Python 统计学与概率论

您应首先攻克的主题很可能是统计学与概率论。网上不仅有相当多的视频和课程可供学习,还有许多(纸质)书籍可以帮助您用 Python 入门统计学。

用 Python 入门统计学 

若要入门统计学,带有真实案例的这份教程是不错的选择。本教程的笔记本将向您介绍均值、中位数、标准差等概念,以及假设检验、概率分布等主题的基础。

这是开始学习统计的好方式,因为它受“Think Bayes”和“Think Stats”两本书启发,而这两本书也是下文将再次出现的强烈推荐!

如果您想找书,可以试试这本免费的Python 计算统计学,它不仅包含 Python 编程入门,还涵盖马尔可夫链蒙特卡罗、期望最大化(EM)算法、重抽样方法等诸多主题。

或者,您也可以购买 Thomas Haslwanter 的这本书,总体介绍常见统计检验、线性回归分析,以及生存分析与贝叶斯统计中的相关主题。需注意,本书以生命与医学科学为应用场景。

如您所见,上述两本书也都会带您接触到更多用 Python 学习的高阶统计主题。

如果您更喜欢视频,建议观看 Christopher Fonnesbeck(范德堡大学医学院生物统计学系助理教授)关于使用 SciPy 进行统计数据分析的这段教程。此外,Gaël Varoquaux 也有一段关于用 Python 进行推断与探索性统计的视频。后者使用了 Pandas 与 StatsModels 等 Python 包。 

您会发现,这些资源都相当通用,足以帮助您用 Python 开始统计学习。

如果您在寻找能快速补齐统计基础的资源,可以看看 DataCamp 的 Statistical Thinking in Python 课程,由 Justin Bois 授课。课程将介绍探索性数据分析(EDA)、方差与协方差、均值与中位数、概率分布等诸多概念。

用 Python 学习概率论

学习 Python 统计学时,概率论同样极具价值。它研究的是随机现象。这意味着任一随机事件的结果是非确定性的:可能出现若干种结果中的任意一种,最终结果由随机性决定。

概率论是统计学的概念渊源。

上文提到的资源给出了统计学的一般性介绍,有些也涵盖了概率论(考虑到上述关系,这是合情合理的),但也有专门聚焦该主题的资源。

您还可以查阅以下资源:

强烈推荐 EdX 上的 Computational Probability and Inference 课程。这门由 MIT 教员授课的动手课程,将让您熟悉概率与推断的原理。

您还应阅读由 Brian Blais 教授撰写的这本免费书,它是一部以概率论作为逻辑出发点的统计推断入门教材。

Python 概率分布

要真正用 Python 为数据科学学习统计学,您还应建立起关于何时使用何种分布的良好直觉。分布是一个列表或函数,展示数据的所有可能取值或区间,以及它们出现的频率。

查看这份清单您就会发现,可考虑的分布相当之多。

若要用 SciPy 了解均匀、正态、二项与泊松分布的入门,您可以查看这篇博文。

强烈推荐 “Think Stats: Probability and Statistics for Programmers” 一书的第四章,它将带您认识连续分布。不过,第五章同样会给出关于概率分布的扎实介绍。

在可视化分布时,直方图等工具会很有用。若想快速了解,您可以查看这个 IPython 笔记本,它简要介绍了以均值、分位数与直方图为核心的描述性统计及其关系。要进一步学习如何可视化分布,请参阅这份 Seaborn 教程。

此外还有这份Plotly 教程,介绍 Python 中的基础统计。

注意,如果您想上课程系统学习部分分布(如二项与泊松)及分布函数(如经验累积分布函数),或学习如何可视化这些分布,可以查看 DataCamp 的 Statistical Thinking in Python 课程。


Python 中的概率分布


Python 假设检验

假设检验是一类统计检验,用于判断样本数据中是否有足够证据,以推断某项条件对总体成立。

此类检验的两大核心概念是原假设与备择假设,同时 p 值对假设检验也至关重要。对于初学者而言,这些概念不易理解,您需要花些功夫来掌握 p 值的 α 值或显著性水平,以及何时拒绝或未能拒绝原假设的区别。

您可以在 SciPy 库官网上找到一篇教程,简要介绍了 p 值与估计。

这份 SciPy 讲义将介绍 t 检验,您可以用它通过分析两组总体均值来检验假设。如果想进一步探索 t 检验,也可以参考这篇博文。

如果想读书,强推的 “Think Stats: Probability and Statistics for Programmers” 在假设检验方面同样适用。第七章将系统讲解假设检验——即使您尚未通读前面关于分布的章节。

若偏好课程,DataCamp 的 Statistical Thinking in Python(第 2 部分) 提供导论与测试示例,助您在假设检验等诸多主题上获得必要的知识与实践。 

Python 中的统计建模与拟合

既然已经掌握了假设检验与分布,您可以先回顾或更深入学习如何构建统计模型,以及如何将分布拟合到数据。

统计模型用于逼近生成数据的过程,可在数据分析中用于汇总、预测与模拟。换言之,它是对生成数据的复杂现象的一种表示,可用于做摘要、预测或模拟。

这也意味着,您需要能够判断数据是否符合该模型。

为了在模型与数据之间提供最佳拟合,可使用估计。估计关注的是基于样本信息对总体进行推断。与假设检验并列,它是通过样本了解总体的另一种方式。

本教程借助 Python 库 SciPy 引入拟合主题。

统计数据建模与拟合也是 Christopher Fonnesbeck 制作并以笔记本形式呈现的这份统计分析教程中的一个章节。这个名字您现在应该耳熟了! 

对视频更感兴趣的同学,YouTube 上也有该教程的四段视频,涵盖最大似然与矩估计等主题。

您可以在这里观看本教程的视频。

另外,若想了解用于统计模式分类的最大似然估计,别错过这个 IPython 笔记本 或这个笔记本,讲解了如何针对不同分布计算该估计。上述笔记本来自 Sebastian Raschka 的模式分类仓库,他还有另一个关于其Python 机器学习一书的仓库。 

用 Python 学习机器学习

提到这本机器学习书,您可能会想:这篇文章不是讲统计学的吗?

没错。

机器学习与统计学并不相同,但它们都在问同一个问题:我们如何从数据中学习? 

此外,机器学习与统计学技术也常被用于模式识别或数据挖掘等场景。 

机器学习是您数据科学工具箱中的一件利器。它范围极广,若要弄清其概念与算法,您可以投入大量时间。

这就是为什么最好现在就开始!

但由于其领域宽广、学习资源众多,起步并非易事。

Andrew Ng 授课的这门机器学习通识课程偏理论,但如果您想先从理论角度把握主要概念与算法,依然值得推荐。

当然,也有许多更偏实操的资源可帮助您起步。

以下仅是其中一部分:

这份基于 SciPy 的机器学习温和入门将助您走上正轨。本教程非常适合希望温习基础统计并在此基础上进阶的读者。Kyle Kastner 将带您学习参数估计、回归、模型估计与基础分类。

如果您希望通过一本书来学习该主题,可以看看IPython Interactive Computing and Visualization Cookbook。第八章介绍了基本的机器学习概念,并演示逻辑回归、朴素贝叶斯、K 近邻、支持向量机、随机森林等算法。书中的示例使用 Scikit-learn 包。

如果您想要一份关于 Scikit-learn 的机器学习入门教程,请前往这里。 

另外,别错过这篇教程,讲解朴素贝叶斯分类器。

用 Python 进行回归分析

谈到数据科学中的统计学,回归绝对绕不开。它是一种用于估计变量间关系的统计过程。

要理解如何使用 Python 做回归,您应先从线性回归的资料入手。

但请先阅读这篇教程:它使用 StatsModels 包与 Quandl 进行回归分析。文章先解释常见的回归类型,然后提供一个实践示例。

接着,通过这篇线性回归教程进一步练习。

然后,您可以转向非线性回归。关于 Python 中岭回归与套索回归的教程,可参考 这篇 Analytics Vidhya 教程。文章使用 NumPy、Pandas、Matplotlib 与 Scikit-learn 等 Python 库,清晰讲解如何入手该主题。 

这里还有一份很棒的逻辑回归笔记本教程,您可以在此处找到。

另外,别错过这篇 Yhat 博文,介绍用 Rodeo 进行逻辑回归。


Python 中的贝叶斯思维与建模


Python 中的贝叶斯思维与建模

贝叶斯统计是一种理论,用称为贝叶斯概率的“信念度”来表达关于真实世界状态的证据。有时,您会希望以贝叶斯的方法来处理数据科学问题。

这具体意味着什么,将在这组精彩的五篇系列文章导论中变得清晰,内容介绍了频率学派与贝叶斯学派。

如果您更偏爱读书,可以查阅“Think Bayes: Bayesian Statistics in Python”。另一本上佳的入门资源是“Bayesian Methods For Hackers”。这两本都是入门贝叶斯思维与建模的必读书! 

或者,如果您想要一份笔记本形式的介绍,可以阅读该教程,带您入门贝叶斯定理。

此外,别错过这份教程 与配套的 YouTube 视频,内容涵盖贝叶斯统计、马尔可夫链蒙特卡罗、PyMC、分层建模,以及模型检验与验证。

关于 Python 中贝叶斯模型拟合的教程,请查看这些 IPython 笔记本及配套 YouTube 视频,这是 Jake VanderPlas 在 2014 年 ESAC 数据分析与统计研讨会上的讲座。  

如果您想复用资源,可以查阅前文在机器学习部分提到的 IPython Interactive Computing and Visualization Cookbook。本书第七章讲的是统计数据分析,但侧重于用于假设检验、参数与非参数估计,以及模型推断的频率学派与贝叶斯方法。

这里有一份关于 PyMC 的教程。PyMC 是一个 Python 模块,实现了贝叶斯统计模型与拟合算法,包括马尔可夫链蒙特卡罗(MCMC)。另外,这篇教程也值得一看,内容是如何用 PyMC3 实现贝叶斯线性回归模型。 

马尔可夫链

简单来说,马尔可夫链是从一个“状态”跳转到另一个状态的数学系统。状态可以是一种情形或一组取值。这意味着您有一个状态列表,同时马尔可夫链告诉您从一个状态跳到任何其他状态的概率,即“转移”概率。

上文提到的一些资源已经向您介绍了该主题。

除了那些资源,您或许还想观看这个视频:它通过蒙特卡罗模拟与重抽样等方法来探索假设检验与统计建模。在深入马尔可夫链之前,这或许是巩固知识的好方式。

此外,Python 计算统计学 也将为您提供关于马尔可夫链的见解。这是一份出色的马尔可夫链蒙特卡罗入门。

用 Python 开始统计学习

这份清单只是帮助您上路。您会发现很多资源彼此重叠,或者还能找到更多其他资源。欢迎在Twitter上告诉我们!

无论如何,开始用 Python 学习统计学的最佳时机就是现在。

立即开始

主题