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

Python生态系统正在不断的成长和壮大,并可能成为应用机器学习的主要平台。

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

在这篇文章中,您将了解到Python环境下的时间序列预测。

阅读这篇文章后,您会掌握:

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

让我们开始吧。

为什么是Python?

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

主要是因为语言的重点在于可读性,所以学习和使用很容易。

这是一种普遍流行的语言,在StackOverflow的调查中一直出现在前十名编程语言中。(例如2015年的调查结果

Python是一种动态语言,非常适合于交互式开发和快速原型开发,支持大型应用程序的开发。

由于优秀的库支持,Python也广泛用于机器学习和数据科学。它已经迅速成为机器学习和数据科学从业者的主要平台之一,甚至比R平台更受用户们喜爱(见下图)。

Python机器学习职位与R机器学习职位对比

这是一个显而易见且非常重要的考虑因素。

这意味着你可以用同一种编程语言来完成你的研究和开发(弄清楚所要使用的模型),从而大大简化了从开发到实际操作的过渡。

Python时间序列库

SciPy是用于数学,科学和工程学的一个Python库 。它是进行时间序列预测的一个Python附加内容。

两个SciPy库为大多数人提供了基础; 他们是NumPy用于提供高效的数组操作,Matplotlib用于绘制数据。有三个高级SciPy库,它们为Python中的时间序列预测提供了关键特性。

他们分别是pandasstatsmodels和用于数据处理的 scikit-learn ,时间序列建模和机器学习。

我们来一一了解一下。

pandas

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

它建立在SciPy生态系统的基础之上,主要使用NumPy数组,但提供了方便易用的_DataFrame__Series_数据结构来表示数据。

pandas 提供了对时间序列数据支持的特别关注

pandas时间序列预测相关的主要功能包括:

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

statsmodels

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

它建立在SciPy生态系统的基础之上,并支持NumPy阵列和Pandas 系列对象形式的数据。

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

与时间序列预测相关的statsmodels的主要特点包括:

  • 平稳性的统计测试,例如增强型Dickey-Fuller单位根检验。
  • 时间序列分析图如自相关函数(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,使用如下指令即可安装:

sudo port install python35
sudo port select --set python python35
sudo port select --set python3 python35

如何安装SciPy

有很多方法可以安装SciPy。

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

SciPy文档非常出色,涵盖了页面上多个不同平台的操作说明安装SciPy Stack

安装SciPy时,请确保已经安装以下包:

  • SciPy
  • numpy
  • matplotlib
  • pandas
  • statsmodels

在Mac OS X与MacPorts,请输入:

sudo port install py35-numpy py35-scipy py35-matplotlib py35-pandas py35-statsmodels py35-pip
sudo port select --set pip pip35

在Fedora Linux上用dnf,请输入:

sudo dnf install python3-numpy python3-scipy python3-pandas python3-matplotlib python3-statsmodels

如何安装scikit-learn

scikit-learn 库必须单独安装。

我建议你使用与安装SciPy一样的方法来安装scikit-learn:

查阅安装scikit-learn的说明,但仅适用于使用Python pip包管理器安装。

在Linux和Mac OS X上,建议通过键入以下命令来安装scikit-learn:

sudo pip install -U scikit-learn

3.确认您的环境

搭建好开发环境后,还必须确认它是否能正常的运行。

首先检查一下Python是否安装成功。打开命令行并输入:

python -V

应该会看到如下的回应:

Python 2.7.12

或则

Python 3.5.3

现在,已经确认这些库已经安装成功。

创建一个名为versions.py的新文件,复制并粘贴下面的代码片段,并将文件保存为versions.py

# scipy
import scipy
print('scipy: %s' % scipy.__version__)
# numpy
import numpy
print('numpy: %s' % numpy.__version__)
# matplotlib
import matplotlib
print('matplotlib: %s' % matplotlib.__version__)
# pandas
import pandas
print('pandas: %s' % pandas.__version__)
# statsmodels
import statsmodels
print('statsmodels: %s' % statsmodels.__version__)
# scikit-learn
import sklearn
print('sklearn: %s' % sklearn.__version__)

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

python versions.py

这将打印您需要的每个库的版本。

例如,在我撰写本系统的时候,我得到了以下结果

scipy: 0.18.1
numpy: 1.11.3
matplotlib: 1.5.3
pandas: 0.19.1
statsmodels: 0.6.1
sklearn: 0.18.1

如果您有错误,请立即停止并修复。您可能需要查阅针对您平台的文档。

概要

这篇文章,带您大致了解了Python环境下的的时间序列预测。

诸如一下内容:

  • Pandas,statsmodels 和 scikit-learn 库是使用Python预测时间序环境中最重要的部分。
  • 如何自动和手动设置Python SciPy环境用于开发。
  • 如何确认您的环境已正确安装,并准备好开始开发模型。

还为您介绍了如何在工作站上安装用于机器学习的Python环境。

本文的版权归 李郑 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

测试建模 :从尔康的鼻孔说开来,重要的用例写三遍

看完本文你会了解以下内容 1. 什么是SUT模型 2. 测试建模在工作中究竟是怎样一个过程 3. 从业务流程到测试用例我们忽略了什么 4. 测试建模会有哪些产出...

22050
来自专栏科研利器

如何下载文献全文&快速找到文献DOI号【史上最强总结】

之前,本公众号推送过一个免费秒下学术文献的神器 SciHub Desktop,只需要将文献的 DOI 号输入进去再点击按钮就可以立马获取 PDF 全文,这款软件...

11.8K140
来自专栏美团技术团队

人工智能在线特征系统中的生产调度

前言 在上篇博客《人工智能在线特征系统中的数据存取技术》中,我们围绕着在线特征系统存储与读取这两方面话题,针对具体场景介绍了一些通用技术,此外特征系统还有另一个...

603100
来自专栏做全栈攻城狮

Android程序员 安卓7.0的新特性新功能 优化渲染来电

上篇介绍了安卓7.0中的多窗口支持、通知增强及即时编译的新特性。这次文章继续讲解android 7.0的新特性新功能.

11830
来自专栏量子位

捡漏!用谷歌图片搜索自制深度学习数据集 | 教程

就怕前脚刚立志搞个新研究,后脚就发现没有合适的数据集可用。AI工程师从入门到放弃,可能就是这么一会的功夫。

20410
来自专栏瓜大三哥

IO约束(上)

IO约束的语法 XDC中可以用于IO约束的命令包括: set_input_delay set_output_delay set_max_delay set_mi...

23280
来自专栏用户画像

1.2.1计算机网络分层结构

两个系统中实体间的通信是一个很复杂的过程,为了降低协议设计和调试过程的复杂性,也为了便于对网络进行研究、实现和维护,促进标准化工作,通常对计算机网络的体系结构以...

10920
来自专栏AI研习社

聊天机器人还能这么玩!教你用 Tensorflow 搭建能理解语境的客服小二!

掌握对话沟通,语境为王。 我们将使用Tensorflow构建一个聊天机器人框架,向大家示范如何实现上下文的语境处理。 ? 有没有想过为什么大多数聊天机器人缺乏会...

55950
来自专栏ATYUN订阅号

Prodigy,从根本上有效的自主学习驱动的注释工具

Prodigy是一种非常高效的机器教学工具,数据科学家可以在无需外部注释的情况下,为新功能创建端到端原型,并且可以顺利地进行生产。无论你是在进行实体识别、意图检...

396100
来自专栏小白课代表

一款小巧的去水印神器——Inpaint

23350

扫码关注云+社区

领取腾讯云代金券