用于时间序列预测,分类和回归的" sklearn"

  

Sktime:用于时间序列机器学习的统一Python库

  > Image by geralt at Pixabay

  在Python中使用时间序列数据解决数据科学问题具有挑战性。

  为什么? 现有工具不适用于时间序列任务,并且无法轻松集成在一起。 scikit-learn软件包中的方法假定数据以表格格式进行结构化,并且每一列均为i.i.d。 —时间序列数据不适用的假设。 包含时间序列学习模块(例如statsmodels)的软件包不能很好地集成在一起。 此外,现有的python包中没有许多重要的时间序列操作,例如跨时间将数据拆分为训练集和测试集。

  为了应对这些挑战,创建了sktime。

  

Sktime:用于时间序列机器学习的统一Python库

  > Logo of the sktime library

  sktime是用于时间序列机器学习的开源Python工具箱。 这是一个由社区推动的项目,由英国经济与社会研究理事会,消费者数据研究中心和艾伦·图灵研究所资助。

  sktime扩展,并且scikit-learn API用于时间序列任务。 它提供了必要的算法和转换工具,可以有效地解决时间序列回归,预测和分类任务。 该库包含专用的时间序列学习算法和转换方法,而其他常见库中尚不可用。

  sktime旨在与scikit-learn互操作,可轻松地将算法修改为相关的时间序列任务,并构建复合模型。 怎么样? 许多时间序列任务都是相关的。 可以解决一个任务的算法通常可以重复使用,以帮助解决相关任务。 这个想法称为减少。 例如,可以将用于时间序列回归的模型(使用序列来预测输出值)重新用于时间序列预测任务(预测的输出值是未来值)。

  使命宣言:" sktime支持按时间序列进行可理解且可组合的机器学习。 它提供了scikit-learn兼容算法和模型组合工具,并由清晰的学习任务分类法,指导性文档和友好的社区提供支持。"

  在本文的其余部分中,我将重点介绍sktime的一些独特功能。

  时间序列的正确数据模型

  Sktime将嵌套数据结构用于Pandas数据帧中的时间序列。

  典型数据帧中的每一行都包含i.d. 观察值和列表示不同的变量。 对于sktime方法,Pandas数据框中的每个单元格现在可以包含整个时间序列。 这种格式对于多变量,面板和异构数据非常灵活,并允许在Pandas和scikit-learn中重用方法。

  在下表中,每一行都是一个观察值,在X列中包含一个时间序列数组,在y列中包含类值。 sktime估计器和变压器可以在这样的序列上运行。

  

Sktime:用于时间序列机器学习的统一Python库

  > Native time series data structure, compatible with sktime.

  在下表中,按照scikit-learn中的方法的要求,系列X中的每个元素都被分隔为一个单独的列。 维数很高-251列! 此外,表格学习算法会忽略列的时间顺序(但由时间序列分类和回归算法使用)。

  

Sktime:用于时间序列机器学习的统一Python库

  > Time series data structure required by

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐