全文共4701字,预计学习时长12分钟
图源:unsplash
在Python中使用时间序列来解决数据科学问题是非常有挑战性的,现有的工具并不适合时间序列任务,也不容易集成。
Scikiti -learn包中的方法假设数据是表格格式结构,每一列为独立同分布——这些假设不适用于时间序列数据。包含时间序列学习模块的程序包,例如状态模型,不能很好地集成。此外,现有的Python包不支持许多基本的时间序列操作,比如将数据分成不同时间的训练集和测试集。
Sktime就是为了解决这一问题应运而生的。Sktime是一个使用时间序列进行机器学习的开源Python工具箱。这是一个由英国经济与社会研究理事会、消费者数据研究中心和艾伦·图灵研究所资助的社区驱动的基金项目。
Sktime将Scikit-learn应用程序接口扩展到时间序列任务。它提供了必要的算法和转换工具,能有效地解决时间序列回归、预测和分类任务。该库包括其他通用类库没有的、专用的时间序列学习算法和转换方法。
Sktime的设计可以与Scikiti -learn互操作,轻松适应相关时间序列任务的算法,并构建复合模型。具体怎么操作呢?许多时间序列任务是相关联的,能够解决一项任务的算法通常可以用来解决相关的任务,这个概念叫做还原。
例如,时间序列回归模型(使用序列来预测输出值)可用于时间序列预测任务(预测的输出值是终值)。
sktime库标志 | 图源:Github
其宗旨是:“Sktime使可理解和可组合的机器学习具有时间序列,为支持清晰学习任务分类Scikiti -learn兼容算法和模型组合工具提供了具有启发性的文档和友好的社群。”
本文将重点介绍sktime的一些特性。
适合时间序列的数据模型
Sktime针对pandas数据帧中的时间序列使用了嵌套数据结构。
典型数据框架中的每一行都包含独立同分布观测值,列代表不同的变量。对于Sktime方法,Pandas数据帧中的每个单元格包含整个时间序列。这种格式对于多变量、面板和异构数据很灵活,允许重用Pandas和Scikit-learn中的方法。在下表中,每一行都是一个观察值,X列中包含一个时间序列数组,y列包含一个组值。
本机时间序列数据结构,