用于时间序列预测的 Python 环境

Python生态系统正在不断发展,并可能成为应用机器学习的主导平台。

采用Python进行时间序列预测的主要理由是,它是一种通用编程语言,您可以将其用于研发和生产。

在本文中,您将了解用于时间序列预测的Python生态系统。

阅读本文后,你将了解:

  • 对时间序列预测至关重要的三个标准Python库。
  • 如何安装和设置用于开发的Python和SciPy环境。
  • 如何确认您的环境运行正常并已准备好进行时间序列预测。

开始您的项目,阅读我的新书《Python时间序列预测导论》,其中包含分步教程和所有示例的Python源代码文件。

让我们开始吧。

Python Environment for Time Series Forecasting

用于时间序列预测的 Python 环境
照片由Joao Trindade拍摄,保留部分权利。

为什么选择Python?

Python是一种通用解释型编程语言(与R或Matlab不同)。

它易于学习和使用,主要因为它注重代码的可读性。

它是一门普遍流行的语言,在StackOverflow的调查中(例如,2015年的调查结果)始终位列前十大编程语言。

Python是一门动态语言,非常适合交互式开发和快速原型设计,同时又具备支持大型应用程序开发的强大功能。

由于其出色的库支持,Python也被广泛用于机器学习和数据科学。它已迅速成为机器学习和数据科学从业者的主导平台之一,并且比R平台更受雇主青睐(请参见下图)。

Python Machine Learning Jobs vs R Machine Learning Jobs

Python机器学习工作岗位与R机器学习工作岗位对比

这是一个简单且非常重要的考虑因素。

这意味着您可以在用于操作的同一种编程语言中进行研究和开发(确定使用哪些模型),极大地简化了从开发到运营的过渡。

停止以**慢速**学习时间序列预测!

参加我的免费7天电子邮件课程,了解如何入门(附带示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

用于时间序列的Python库

SciPy是用于数学、科学和工程的Python库生态系统。它是Python的附加组件,您在时间序列预测中需要它。

两个SciPy库为大多数其他库奠定了基础;它们分别是提供高效数组操作的NumPy和用于绘制数据的Matplotlib。有三个更高级的SciPy库为Python中的时间序列预测提供了关键功能。

它们分别是pandas、statsmodels和scikit-learn,分别用于数据处理、时间序列建模和机器学习。

让我们依次仔细看看每一个。

库:pandas

pandas库提供了高性能的工具,用于在Python中加载和处理数据。

它构建于SciPy生态系统之上并需要它,底层主要使用NumPy数组,但提供了方便易用的数据结构,如用于表示数据的DataFrameSeries

Pandas提供了对时间序列数据的专门支持

pandas中与时间序列预测相关的关键功能包括:

  • 用于表示单变量时间序列的Series对象。
  • 对数据中的日期时间索引和日期时间范围进行显式处理。
  • 转换,如移位、滞后和填充。
  • 重采样方法,如上采样、下采样和聚合。

库:statsmodels

statsmodels库提供了统计建模工具。

它构建于SciPy生态系统之上并需要它,支持NumPy数组和PandasSeries对象形式的数据。

它提供了一套统计测试和建模方法,以及专门用于时间序列分析的工具,这些工具也可以用于预测。

statsmodels在时间序列预测方面的关键功能包括:

  • 平稳性统计检验,如增广迪基-富勒单位根检验。
  • 时间序列分析图,如自相关函数(ACF)和偏自相关函数(PACF)。
  • 线性时间序列模型,如自回归(AR)、移动平均(MA)、自回归移动平均(ARMA)和自回归积分移动平均(ARIMA)。

库:scikit-learn

scikit-learn库是您在Python中开发和实践机器学习的方式。

它构建于SciPy生态系统之上并需要它。名称“sckit”表明它是SciPy的插件或工具包。您可以查看所有可用SciKits的完整列表

该库的重点是用于分类、回归、聚类等的机器学习算法。它还提供了用于相关任务的工具,如模型评估、参数调优和数据预处理。

scikit-learn在时间序列预测方面的相关关键功能包括:

  • 数据准备工具套件,如数据缩放和填充。
  • 可用于建模数据和进行预测的机器学习算法套件。
  • 用于评估模型在未见过数据上性能的重采样方法,特别是TimeSeriesSplit

Python生态系统安装

本节将为您提供关于设置Python环境进行时间序列预测的通用建议。

我们将涵盖:

  1. 使用Anaconda自动安装。
  2. 使用您的平台包管理器手动安装。
  3. 确认已安装的环境。

如果您已经有一个可用的Python环境,请跳至确认步骤,检查您的软件库是否为最新。

让我们开始吧。

1. 自动安装

如果您不确定如何在机器上安装软件,或者您使用的是Microsoft Windows,有一个简单的选择。

有一个名为Anaconda Python的发行版,您可以免费下载和安装。

它支持Microsoft Windows、Mac OS X和Linux这三个主要平台。

它包含了Python、SciPy和scikit-learn:您学习、练习和使用Python环境中的时间序列预测所需的一切。

您可以从这里开始使用Anaconda Python:

2. 手动安装

有多种方法可以为您的平台安装Python生态系统。

在本节中,我们将介绍如何为时间序列预测安装Python生态系统。

如何安装Python

第一步是安装Python。我建议并推荐使用Python 2.7或Python 3.5。

Python的安装将取决于您的平台。有关说明,请参阅

在Mac OS X上使用macports,我会输入:

如何安装SciPy

安装SciPy的方法有很多。

例如,两种流行的方法是使用您平台的包管理器(例如,RedHat上的dnf或OS X上的macports)或使用Python包管理器,如pip

SciPy的文档非常出色,并在安装SciPy堆栈页面上提供了许多不同平台的安装说明。

安装SciPy时,请确保至少安装以下软件包:

  • scipy
  • numpy
  • matplotlib
  • pandas
  • statsmodels

在Mac OS X上使用macports,我会输入:

在Fedora Linux上使用dnf,我会输入:

如何安装scikit-learn

scikit-learn库必须单独安装。

我建议您使用与安装SciPy相同的方法来安装scikit-learn。

安装scikit-learn的说明可在,但仅限于使用Pythonpip包管理器。

在Linux和Mac OS X上,我通过输入以下命令安装了scikit-learn:

3. 确认您的环境

设置好环境后,您必须确认它是否按预期工作。

首先,让我们检查Python是否已成功安装。打开命令行并输入:

您应该会看到类似以下的响应:

或者

现在,确认库是否已成功安装。

创建一个名为versions.py的新文件,并将以下代码片段复制并粘贴到其中,然后将文件另存为versions.py

在命令行或您喜欢的Python编辑器中运行该文件。例如,键入:

这将打印出您所需各关键库的版本。

例如,在我写这篇文章的时候,我的系统得到了以下结果:

如果您遇到错误,请立即停止并修复。您可能需要查阅您平台的特定文档。

总结

在本文中,您了解了用于时间序列预测的Python生态系统。

您了解了:

  • pandas、statsmodels和scikit-learn库是Python时间序列预测的最佳库。
  • 如何自动和手动设置用于开发的Python SciPy环境。
  • 如何确认您的环境已正确安装,并且您已准备好开始开发模型。

您还学会了如何在您的工作站上安装机器学习的Python生态系统。

您对Python在时间序列预测方面的应用,或对本文有任何疑问吗?请在评论区提问,我将尽力回答。

想用Python开发时间序列预测吗?

Introduction to Time Series Forecasting With Python

几分钟内开发您自己的预测

...只需几行python代码

在我的新电子书中探索如何实现
Python 时间序列预测入门

它涵盖了**自学教程**和**端到端项目**,主题包括:*数据加载、可视化、建模、算法调优*等等。

最终将时间序列预测带入
您自己的项目

跳过学术理论。只看结果。

查看内容

4条对Python用于时间序列预测的环境的回复

  1. Amelie 2019年2月27日上午12:57 #

    嗨,Jason,

    我研究时间序列聚类,你能给我指个例子吗?
    您对用于时间序列聚类的动态时间规整(DTW)有什么想法,或者能给我指个例子吗?

    谢谢你。

    • Jason Brownlee 2019年2月27日上午7:33 #

      抱歉,我没有关于DTW的教程,感谢您的建议。

  2. Naresh 2021年7月2日晚上11:17 #

    嗨,Jason,

    您能为Sktime库做一个教程,以及它如何用于多输出回归吗?

    提前感谢。

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。