我正在评估 Python 中的时间序列预测模型,更具体地说是 statsmodels、scikit-learn 和 tensorflow。我认为首先将模型性能与一组“琐碎”模型进行比较是有意义的。
通常使用的此类基线模型的示例是什么?有现成的实现吗?(例如,有没有类似于scikit-learn DummyClassifier的东西来进行时间序列预测?)
我正在评估 Python 中的时间序列预测模型,更具体地说是 statsmodels、scikit-learn 和 tensorflow。我认为首先将模型性能与一组“琐碎”模型进行比较是有意义的。
通常使用的此类基线模型的示例是什么?有现成的实现吗?(例如,有没有类似于scikit-learn DummyClassifier的东西来进行时间序列预测?)
我认为首先将模型性能与一组“琐碎”模型进行比较是有意义的。
这是不可言喻的真实。这就是我赞成你的问题的地方。
Athanasopoulos & Hyndman的优秀免费在线书籍《预测:原则与实践》(第 2 版)提供了许多非常简单的方法,这些方法通常令人惊讶地难以击败:
这些和类似的方法也被用作学术预测研究的基准。如果您的新方法不能始终超过历史平均水平,那么它可能不是那么热门。
我不知道任何 Python 实现,但这不应该太难。
补充 Stephan Kolassa 之前的回答:我们正在开发一个用于预测的 Python 工具箱,并为此目的实现了一个“naïve Forecaster”类。因此,使用sktime,您可以例如运行:
import numpy as np
from sktime.datasets import load_airline
from sktime.forecasting.model_selection import temporal_train_test_split
from sktime.performance_metrics.forecasting import smape_loss
from sktime.forecasting.naive import NaiveForecaster
y = load_airline() # time series data
y_train, y_test = temporal_train_test_split(y)
fh = np.arange(1, len(y_test) + 1) # forecasting horizon
forecaster = NaiveForecaster(strategy="last") # random walk
forecaster.fit(y_train)
y_pred = forecaster.predict(fh)
print(smape_loss(y_test, y_pred))