当前位置:主页 > 新闻热点 >正文

用Python玩转时序数据

作者: 丈哥 分类: 新闻热点 发布时间: 2019-01-10 15:50

用Python玩转时序数据

时间序列是日常生活中最常见的数据类型之一。股票价格、销售信息、气候数据、能源使用,甚至个人身高体重都是可以用来定期收集的数据样本。几乎每个数据科学家在工作中都会遇到时间序列,能够有效地处理这些数据是数据科学领域之中的一项非常重要的技能。

本文简要介绍了如何从零开始使用Python中的时间序列。这包括对时间序列的简单定义,以及对利用pandas访问伦敦市居民智能电表所获取数据的处理。可以点击此处获取本文中所使用的数据。还提供了一些我认为有用的代码。

让我们从基础开始,时间序列的定义是这样的:

♦ 时间序列是按时间的顺序进行索引、排列或者绘制的数据点的集合。最常见的定义是,一个时间序列是在连续的相同间隔的时间点上取得的序列,因此它是一个离散时间数据的序列。

♦ 时间序列数据是围绕相对确定的时间戳而组织的。因此,与随机样本相比,可能包含我们将要尝试提取的一些相关信息。

♦ 加载和控制时间序列

数据集

让我们使用一些关于能源消耗计费的数据作为例子,以kWh(每半小时)为单位, 在2011年11月至2014年2月期间,对参与英国电力网络领导的低碳伦敦项目的伦敦居民样本数据进行分析。我们可以从绘制一些图表开始,最好了解一下样本的结构和范围,这也将允许我们寻找最终需要纠正的缺失值。

用Python玩转时序数据

对于本文的其余部分,我们只关注DateTime和kWh两列。

用Python玩转时序数据

重采样

让我们从较简单的重采样技术开始。重采样涉及到更改时间序列观测的频率。特征工程可能是你对重新采样时间序列数据感兴趣的一个原因。实际上,它可以用来为监督学习模型提供额外的架构或者是对学习问题的领会角度。pandas中的重采样方法与GroupBy方法相似,因为你基本上是按照特定时间间隔进行分组的。然后指定一种方法来重新采样。让我们通过一些例子来把重采样技术描述的更具体些。我们从每周的总结开始:

♦ ·data.resample()方法将用于对DataFrame的kWh列数据重新取样;

♦ ·“W”表示我们要按每周重新取样;

♦ ·sum()方法用于表示在此时间段计算kWh列的总和;

用Python玩转时序数据

我们可以对每日的数据也这么做处理,并且可以使用groupby和mean函数进行按小时处理:

用Python玩转时序数据

用Python玩转时序数据

为了进一步进行重新采样,pandas有许多内置的选项,你甚至还可以定义自己的方法。下面两个表分别显示了时间周期选项及其缩写别名和一些可能用于重采样的常用方法。

用Python玩转时序数据

用Python玩转时序数据

其它探索

这里还有一些你可以用于处理数据而进行的其它探索:

用Python玩转时序数据

用Python玩转时序数据

用Python玩转时序数据

用Python玩转时序数据

用Python玩转时序数据

用Prophet建模

Facebook Prophet于2017年发布的,可用于Python,而R.Prophet是设计用于分析在不同时间间隔上显示模式的日观测时间序列。Prophet对于数据丢失情况和趋势的变化具有很强的鲁棒性,并且通常能够很好地处理异常值。它还具有高级的功能,可以模拟假日在时间序列上产生的影响并执行自定义的变更点,但我将坚持使用基本规则来启动和运行模型。我认为Prophet可能是生产快速预测结果的一个好的选择,,因为它有直观的参数,并且可以由有良好领域知识背景的但缺乏预测模型的技术技能的人来进行调整。有关Prophet的更多信息,大家可以点击这里查阅官方文档。


本文链接地址:https://www.0471seo.com/news/1372.html
  • 上一篇:<<强化学习时代正在到来

  • 下一篇:打破认知:程序设计 = 算法 + 数据结构?>>
  • 如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!