预测#

sktime.forecasting 模块包含用于预测的算法和组合工具。

可以使用 sktime.registry.all_estimators 实用工具列出 sktime 中的所有预测器,使用 estimator_types="forecaster",并可选地通过标签过滤。可以使用 sktime.registry.all_tags 列出有效标签。

也可以在估计器搜索页面上找到一个带有基于标签搜索的完整表格(在“估计器类型”下拉菜单中选择“forecaster”)。

基础#

BaseForecaster()

基础预测器模板类。

ForecastingHorizon([values, is_relative, freq])

预测范围。

Pipeline组合#

用于构建预测Pipeline的组合器。Pipeline也可以使用 *, **, +, 和 | 魔术方法构建。

make_pipeline(*steps)

从任意类型的估计器创建Pipeline。

TransformedTargetForecaster(steps)

用于预测经过转换的时间序列的元估计器。

ForecastingPipeline(steps)

用于预测带有外生数据的Pipeline。

ColumnEnsembleForecaster(forecasters)

使用单独的预测器对每个序列进行预测。

MultiplexForecaster(forecasters[, ...])

用于在不同模型中进行选择的MultiplexForecaster。

ForecastX(forecaster_y[, forecaster_X, ...])

预测器,用于预测外生数据,以用于内生预测。

ForecastByLevel(forecaster[, groupby])

按实例或面板进行预测。

TransformSelectForecaster(forecasters[, ...])

根据时间序列的类别或聚类选择预测器。

GroupbyCategoryForecaster(forecasters[, ...])

根据时间序列的类别或聚类选择全局预测器。

HierarchyEnsembleForecaster(forecasters[, ...])

聚合分层数据,拟合预测器并进行预测。

Permute(estimator[, permutation, steps_arg])

用于重排预测Pipeline步骤的置换组合器。

FhPlexForecaster(forecaster[, fh_params, ...])

根据预测范围元素使用不同的参数。

IgnoreX(forecaster[, ignore_x])

用于忽略外生变量的组合器。

FallbackForecaster(forecasters[, verbose, ...])

按顺序尝试列表中的预测模型的预测器。

降维#

使用 sklearn 回归器或 sktime 时间序列回归器进行预测的降维预测器。

并发表格策略#

在同一时间戳使用外生数据 - 简单的降维策略。

YfromX(estimator[, pooling])

从并发外生变量预测内生变量的简单降维方法。

直接和递归 - sktime 原生第一代#

基于 numpy 的第一代直接和递归降维预测器。

可以通过 make_reduction 构建不同的策略,以便于指定。

make_reduction(estimator[, strategy, ...])

基于降维到表格或时间序列回归的预测器。

DirectTabularRegressionForecaster(estimator)

从预测到表格回归的直接降维。

DirectTimeSeriesRegressionForecaster(estimator)

从预测到时间序列回归的直接降维。

MultioutputTabularRegressionForecaster(estimator)

从预测到表格回归的多输出降维。

MultioutputTimeSeriesRegressionForecaster(...)

从预测到时间序列回归的多输出降维。

RecursiveTabularRegressionForecaster(estimator)

从预测到表格回归的递归降维。

RecursiveTimeSeriesRegressionForecaster(...)

从预测到时间序列回归的递归降维。

DirRecTabularRegressionForecaster(estimator)

从预测到表格回归的直递归(Direct-recursive)降维。

DirRecTimeSeriesRegressionForecaster(estimator)

从预测到时间序列回归的直递归(Direct-recursive)降维。

直接和递归 - sktime 原生第二代#

基于 pandas 的第二代直接和递归降维预测器重构。

DirectReductionForecaster(estimator[, ...])

直接降维预测器,包括单输出、多输出、外生直接降维。

RecursiveReductionForecaster(estimator[, ...])

递归降维预测器,包括外生递归降维。

直接和递归 - 第三方#

SkforecastAutoreg(regressor, lags[, ...])

skforecast.ForecasterAutoreg.ForecasterAutoreg 类的适配器 [Rab014607127f-1]

SkforecastRecursive(regressor[, lags, ...])

skforecast.recursive.ForecasterRecursive 类的适配器 [Rc9c1c54db0c0-1]

DartsRegressionModel([lags, ...])

Darts 回归模型估计器。

DartsLinearRegressionModel([...])

Darts 线性回归估计器。

DartsXGBModel([past_covariates, ...])

Darts XGBoost 模型估计器。

朴素预测器#

NaiveForecaster([strategy, window_length, sp])

基于对过去趋势持续的朴素假设进行的预测。

ForecastKnownValues(y_known[, method, ...])

将已知或预设值作为预测结果的回放预测器。

预测区间#

向任何预测器添加预测区间的包装器。

SquaringResiduals([forecaster, ...])

基于单独的预测器计算预测方差。

NaiveVariance(forecaster[, initial_window, ...])

基于朴素策略计算预测方差。

ConformalIntervals(forecaster[, method, ...])

经验和一致性预测区间。

BaggingForecaster([bootstrap_transformer, ...])

通过汇总其自助法样本的预测来预测时间序列。

EnbPIForecaster([forecaster, ...])

集成自助预测区间预测器。

校准和偏差调整#

BoxCoxBiasAdjustedForecaster(forecaster[, ...])

Box-Cox 偏差调整预测器。

趋势预测器#

TrendForecaster([regressor])

基于趋势的时间序列数据预测,将值对索引进行回归。

PolynomialTrendForecaster([regressor, ...])

使用多项式趋势预测时间序列数据。

STLForecaster([sp, seasonal, trend, ...])

基于 statsmodels.tsa.seasonal.STL 实现的 STLForecaster。

CurveFitForecaster(function[, ...])

CurveFitForecaster 接受一个函数,并使用 scipy curve_fit 进行拟合。

ProphetPiecewiseLinearTrendForecaster([...])

使用分段线性趋势预测时间序列数据,通过 prophet 进行拟合。

SplineTrendForecaster([regressor, n_knots, ...])

使用样条趋势预测时间序列数据。

StatsForecastMSTL(season_length[, ...])

StatsForecast 基于 LOESS 模型的多元季节-趋势分解。

指数平滑预测器#

ExponentialSmoothing([trend, damped_trend, ...])

Holt-Winters 指数平滑预测器。

AutoETS([error, trend, damped_trend, ...])

具有手动和自动拟合能力的 ETS 模型。

StatsForecastAutoETS([season_length, model, ...])

StatsForecast 自动指数平滑模型。

StatsForecastAutoCES([season_length, model])

StatsForecast 复杂指数平滑模型。

ThetaForecaster([initial_level, ...])

Theta 方法预测。

StatsForecastAutoTheta([season_length, ...])

Statsforecast AutoTheta 估计器。

AR/MA 类型预测器#

带有 AR 或 MA 分量的预测器。

下面所有的“ARIMA”和“Auto-ARIMA”模型都包含 SARIMAX 功能。

(V)AR(I)MAX 模型#

AutoREG([lags, trend, seasonal, hold_back, ...])

自回归 AR-X(p) 模型。

ARIMA([order, seasonal_order, start_params, ...])

来自 pmdarima 包的 (S)ARIMA(X) 预测器。

StatsModelsARIMA([order, seasonal_order, ...])

来自 statsmodels, tsa.arima 模块的 (S)ARIMA(X) 预测器。

SARIMAX([order, seasonal_order, trend, ...])

来自 statsmodels, tsa.statespace 模块的 (S)ARIMA(X) 预测器。

VAR([maxlags, method, verbose, trend, ...])

来自 statsmodels 的 VAR 模型。

VARReduce([lags, regressor])

一种灵活的类似 VAR 的预测器,结合了表格化和回归。

VARMAX([order, trend, error_cov_type, ...])

来自 statsmodels 的 VARMAX 预测模型。

VECM([dates, freq, missing, k_ar_diff, ...])

来自 statsmodels 的向量误差修正模型。

Auto-ARIMA 模型#

AutoARIMA([start_p, d, start_q, max_p, ...])

来自 pmdarima 包的 Auto-(S)ARIMA(X) 预测器。

StatsForecastAutoARIMA([start_p, d, ...])

StatsForecast AutoARIMA 估计器。

ARCH 模型#

StatsForecastARCH([p])

StatsForecast ARCH 估计器。

StatsForecastGARCH([p, q])

StatsForecast GARCH 估计器。

ARCH([mean, lags, vol, p, o, q, power, ...])

直接接口来自 python 包 arch 的 ARCH 模型。

结构化时间序列模型#

ARDL([lags, order, fixed, causal, trend, ...])

自回归分布式滞后 (ARDL) 模型。

BATS([use_box_cox, box_cox_bounds, ...])

用于具有多重季节性时间序列的 BATS 预测器。

TBATS([use_box_cox, box_cox_bounds, ...])

用于具有多重季节性时间序列的 TBATS 预测器。

StatsForecastAutoTBATS(seasonal_periods[, ...])

StatsForecast TBATS 模型。

Prophet([freq, add_seasonality, ...])

通过包装 Facebook 的 prophet 算法实现的 Prophet 预测器 [R995275cbd543-1]

Prophetverse([changepoint_interval, ...])

单变量 prophetverse 预测器 - 在 numpyro 中实现的 prophet 模型。

HierarchicalProphet([trend, ...])

一个基于 Meta Prophet 的贝叶斯分层时间序列预测模型。

UnobservedComponents([level, trend, ...])

来自 statsmodels 的 UnobservedComponents 预测模型。

DynamicFactor([k_factors, factor_order, ...])

动态因子预测器。

基于深度学习的预测器#

LTSFLinearForecaster(seq_len, pred_len, *[, ...])

LTSF-Linear 预测器。

LTSFDLinearForecaster(seq_len, pred_len, *)

LTSF-DLinear 预测器。

LTSFNLinearForecaster(seq_len, pred_len, *)

LTSF-NLinear 预测器。

LTSFTransformerForecaster(seq_len, ...[, ...])

LTSF-Transformer 预测器。

SCINetForecaster(seq_len, *[, num_epochs, ...])

SCINet 预测器。

CINNForecaster([n_coupling_layers, ...])

条件可逆神经网络 (cINN) 预测器。

NeuralForecastRNN([freq, local_scaler_type, ...])

NeuralForecast RNN 模型。

NeuralForecastLSTM([freq, ...])

NeuralForecast LSTM 模型。

PytorchForecastingTFT([model_params, ...])

pytorch-forecasting 时序融合 Transformer 模型。

PytorchForecastingDeepAR([model_params, ...])

pytorch-forecasting DeepAR 模型。

PytorchForecastingNHiTS([model_params, ...])

pytorch-forecasting NHiTS 模型。

PytorchForecastingNBeats([model_params, ...])

pytorch-forecasting NBeats 模型。

PyKANForecaster([hidden_layers, ...])

PyKANForecaster 使用 Kolmogorov Arnold 网络 [1] 预测时间序列数据。

RBFForecaster([window_length, hidden_size, ...])

使用 RBF 变换和 'NN' 层进行时间序列预测的模型。

ESRNNForecaster([hidden_size, num_layer, ...])

指数平滑循环神经网络。

预训练和基础模型#

HFTransformersForecaster([model_path, ...])

使用 huggingface 模型进行预测的预测器。

ChronosForecaster(model_path[, config, ...])

亚马逊研究院开发的 Chronos 和 Chronos-Bolt 零样本预测器接口。

MOIRAIForecaster(checkpoint_path[, ...])

用于使用 MOIRAI 预测器的适配器。

TimesFMForecaster([context_len, ...])

用于零样本预测的 TimesFM (时间序列基础模型) 实现。

TinyTimeMixerForecaster([model_path, ...])

用于多元时间序列零样本预测的 TinyTimeMixer 预测器。

TimeLLMForecaster([task_name, pred_len, ...])

Time-LLM 接口。

间歇性时间序列预测器#

Croston([smoothing])

用于预测间歇性时间序列的 Croston 方法。

StatsForecastADIDA([prediction_intervals])

StatsForecast ADIDA(汇总-分解间歇性需求方法)模型。

集成和堆叠#

EnsembleForecaster(forecasters[, n_jobs, ...])

预测器集成。

AutoEnsembleForecaster(forecasters[, ...])

自动为集成预测器找到最佳权重。

StackingForecaster([forecasters, regressor, ...])

StackingForecaster。

分层协调#

ReconcilerForecaster(forecaster[, method, ...])

分层协调预测器。

在线和流式预测#

OnlineEnsembleForecaster(forecasters[, ...])

预测器的在线更新集成。

NormalHedgeEnsemble([n_estimators, a, loss_func])

无参数对冲算法。

NNLSEnsemble([n_estimators, loss_func])

基于非负最小二乘权重的集成预测。

UpdateEvery(forecaster[, update_interval])

只在调用 update 时定期更新。

UpdateRefitsEvery(forecaster[, ...])

在调用 update 时定期重新拟合。

DontUpdate(forecaster)

关闭更新,即确保预测器只进行拟合而不进行更新。

其他预测框架包的适配器#

通用框架适配器,通过 sktime 接口暴露其他框架。

HCrystalBallAdapter(model)

用于在 sktime 中使用 hcrystalball 预测器的适配器。

模型选择和调优#

ForecastingGridSearchCV(forecaster, cv, ...)

执行网格搜索交叉验证以找到最优模型参数。

ForecastingRandomizedSearchCV(forecaster, ...)

执行随机搜索交叉验证以找到最优模型参数。

ForecastingSkoptSearchCV(forecaster, cv, ...)

对预测器超参数进行贝叶斯搜索。

ForecastingOptunaSearchCV(forecaster, cv, ...)

执行 Optuna 搜索交叉验证以找到最优模型超参数。

模型评估(回测)#

evaluate(forecaster, cv, y[, X, strategy, ...])

使用时间序列交叉验证评估预测器。

时间索引分割器#

可以使用基于时间索引的分割器自定义评估和调优,有关列表请参阅分割器 API