使用网格搜索时间序列的投票分类器

数据挖掘 Python 时间序列 集成建模 网格搜索
2022-02-27 02:12:28

我有三个模型:

  1. 有马
  2. 自动 ARIMA
  3. 双指数平滑

我想应用一种集成方法 - 一种投票方法,并允许分类器学习这三个模型的权重。

我已经votingclassifier在 scikit learn 中检查了当前。它要求: fit(x,y)运行。

对象中存在的时间序列对象series没有y.

您如何应用投票分类器并通过网格搜索学习权重?

1个回答

在时间序列问题中,您的输入 (x) 和输出 (y) 在最基本的情况下是在不同时间点记录的同一个变量。

如果你有T个时间点:1, 2, 3, ... T那么我们将x视为一个数据点数组,每个时间点都有一个索引t来访问。

通常y将只是您的x数组在时间上向前移动(在下面的示例中,通过 1 个时间单位,所以yt=xt1向量表示法或y[t] == x[t-1]数组表示法):

  x  |   y
-----|-----
 0.1 |  NaN
 0.2 |  0.1
 0.3 |  0.2
 0.3 |  0.3
 0.4 |  0.3
 0.3 |  0.4
 0.5 |  0.3
 1.0 |  0.5

Pandas 有shift()一种时间序列方法,它允许您以不同的时间间隔移动 x 列,并使用该移动序列创建一个新的 y 列。请参阅https://stackoverflow.com/questions/10982089/how-to-shift-a-column-in-pandas-dataframe

您可以通过包含多个时间滞后以及其他变量来增加复杂程度,但这解释了如何将时间序列预测转换为监督学习问题的基本原理。