from pmdarima.pipeline import Pipeline
from pmdarima.preprocessing import FourierFeaturizer
pipeline = Pipeline([
("fourier_1", FourierFeaturizer(m=7, k=1)),
("fourier_2", FourierFeaturizer(m=14, k=1)),
])
pipeline.fit_transform(df['value'])
当我运行以上代码。我得到以下错误:TypeError: Last step of Pipeline should be of type BaseARIMA. 'FourierFeaturizer(k=1, m=14)'
我不想使用BaseARIMA。只想使用FourierFeathurizer是可能的吗?
是的,这是可能的。
每个FourierFeatureizer都有一个fit_transform方法,该方法返回y var和新的外部变量。通过连接这个返回值,可以得到傅立叶特征。
y, x1 = FourierFeaturizer(m=7, k=2).fit_transform(df[['value']])
y, x2 = FourierFeaturizer(m=365, k=2).fit_transform(y)
exog = pd.concat([x1, x2], axis=1)
警告:如果您使用的m值是彼此的倍数,您将获得共线,因为m=14的第二个频率与m=7的第一个频率完全相同。使用多个季节性时,请确保它们的周期不是彼此的倍数。