介绍#
注意
用户指南正在开发中。我们已创建了一个基本结构,并正在寻找贡献来进一步开发用户指南。更多详情,请访问 GitHub 上的 issue #361。
sktime 是一个用于时间序列机器学习的统一工具箱。时间序列产生了多种学习任务(例如,预测和时间序列分类)。sktime 的目标是提供解决这些任务所需的所有工具,包括专门的时间序列算法以及用于构建、调优和评估组合模型的工具。
这些任务中有许多是相关的。一个能够解决其中一项任务的算法通常可以被重用来帮助解决另一项任务,这是一种被称为“归约”(reduction)的思想。sktime 的统一接口允许轻松地将一个任务的算法应用于另一个任务。
例如,要使用回归算法解决预测任务,我们可以简单地写
import numpy as np
from sktime.datasets import load_airline
from sktime.forecasting.compose import make_reduction
from sklearn.ensemble import RandomForestRegressor
from sktime.performance_metrics.forecasting import MeanAbsolutePercentageError
from sktime.split import temporal_train_test_split
y = load_airline()
y_train, y_test = temporal_train_test_split(y)
fh = np.arange(1, len(y_test) + 1) # forecasting horizon
regressor = RandomForestRegressor()
forecaster = make_reduction(
regressor,
strategy="recursive",
window_length=12,
)
forecaster.fit(y_train)
y_pred = forecaster.predict(fh)
smape = MeanAbsolutePercentageError()
smape(y_test, y_pred)
>>> 0.1261192310833735
更多详情,请查阅我们的论文。
目前,sktime 提供
来自基于 Java 的 tsml 工具包移植的、用于时间序列分类和回归的最新算法,以及预测算法,
转换器 (Transformers),包括单系列转换(例如,去趋势或去季节化)和系列作为特征的转换(例如,特征提取器),以及用于组合不同转换器的工具,
流水线 (Pipelining),
调优 (Tuning),
集成 (Ensembling),例如用于时间序列分类和回归的完全可定制随机森林,以及用于多元问题的集成,
有关已实现方法的列表,请参阅我们的评估器概览。
此外,sktime 还包含一个实验性的高级 API,它统一了多种学习任务,部分灵感来源于 mlr 和 openML 的 API。