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

Sktime是一个Python工具箱,专注于时间序列的机器学习任务,扩展了Scikit-learn API,提供时间序列数据模型、转换器、分类、回归和预测算法。它支持与Scikit-learn的互操作性,简化了时间序列分析流程,如模型调优、流水线技术、随机森林等。文中介绍了Sktime的数据模型、功能以及代码示例,展示了如何用于时间序列预测和分类。
摘要由CSDN通过智能技术生成

全文共4701字,预计学习时长12分钟

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

图源:unsplash

 

在Python中使用时间序列来解决数据科学问题是非常有挑战性的,现有的工具并不适合时间序列任务,也不容易集成。

 

Scikiti -learn包中的方法假设数据是表格格式结构,每一列为独立同分布——这些假设不适用于时间序列数据。包含时间序列学习模块的程序包,例如状态模型,不能很好地集成。此外,现有的Python包不支持许多基本的时间序列操作,比如将数据分成不同时间的训练集和测试集。

 

Sktime就是为了解决这一问题应运而生的。Sktime是一个使用时间序列进行机器学习的开源Python工具箱。这是一个由英国经济与社会研究理事会、消费者数据研究中心和艾伦·图灵研究所资助的社区驱动的基金项目。

 

Sktime将Scikit-learn应用程序接口扩展到时间序列任务。它提供了必要的算法和转换工具,能有效地解决时间序列回归、预测和分类任务。该库包括其他通用类库没有的、专用的时间序列学习算法和转换方法。

 

Sktime的设计可以与Scikiti -learn互操作,轻松适应相关时间序列任务的算法,并构建复合模型。具体怎么操作呢?许多时间序列任务是相关联的,能够解决一项任务的算法通常可以用来解决相关的任务,这个概念叫做还原。

 

例如,时间序列回归模型(使用序列来预测输出值)可用于时间序列预测任务(预测的输出值是终值)。

 

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

sktime库标志 | 图源:Github

 

其宗旨是:“Sktime使可理解和可组合的机器学习具有时间序列,为支持清晰学习任务分类Scikiti -learn兼容算法和模型组合工具提供了具有启发性的文档和友好的社群。”

 

本文将重点介绍sktime的一些特性。

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

 

 

适合时间序列的数据模型

 

Sktime针对pandas数据帧中的时间序列使用了嵌套数据结构。

 

典型数据框架中的每一行都包含独立同分布观测值,列代表不同的变量。对于Sktime方法,Pandas数据帧中的每个单元格包含整个时间序列。这种格式对于多变量、面板和异构数据很灵活,允许重用Pandas和Scikit-learn中的方法。在下表中,每一行都是一个观察值,X列中包含一个时间序列数组,y列包含一个组值。

 

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

本机时间序列数据结构,

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sktime提供了许多用于时间序列预测的模型和工具,例如ARIMA、SARIMA、ETS等。绘制时间序列预测图形的方法通常包括将实际数据和预测数据一起绘制,并使用不同的颜色或线型区分它们。 下面是一个简单的示例,演示如何使用sktime和Matplotlib绘制时间序列预测图形: ```python import matplotlib.pyplot as plt from sktime.forecasting.arima import AutoARIMA from sktime.datasets import load_airline # 加载航空公司乘客数据集 y = load_airline() # 拆分数据集 y_train, y_test = y[:120], y[120:] # 训练自动ARIMA模型 forecaster = AutoARIMA(sp=12, suppress_warnings=True) forecaster.fit(y_train) # 预测未来12个月的数据 y_pred = forecaster.predict(fh=[i for i in range(1, 13)]) # 绘制实际数据和预测数据的线图 plt.plot(y_train, label='train') plt.plot(y_test, label='test') plt.plot(y_pred, label='forecast') plt.title('Airline Passengers') plt.xlabel('Time') plt.ylabel('Passengers') plt.legend() plt.show() ``` 在这个示例中,我们首先使用sktime加载了航空公司乘客数据集,并将其拆分为训练集和测试集。然后,我们使用自动ARIMA模型来训练数据,并使用该模型预测未来12个月的数据。最后,我们将实际数据、测试数据和预测数据一起绘制在同一张图上,并使用不同的颜色区分它们。 您可以根据需要自定义这些图形,例如添加网格线、更改线条颜色或线型等。Matplotlib提供了许多选项,可以让您创建漂亮的时间序列预测图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值