python - 在 fbprophet 模型中使用多个自变量

标签 python python-3.x

我倾向于像这样使用 fbprophet 来预测时间序列单变量:

import pandas as pd
from fbprophet import Prophet
import matplotlib.pyplot as plt

plt.style.use('fivethirtyeight')

stock = 'FB'

df = pd.read_csv('C:/Bla/' + stock + '.csv')
df['Date'] = pd.DatetimeIndex(df['Date'])

df = df.rename(columns={'Date': 'ds',
                        'Close': 'y'})

my_model = Prophet(
    weekly_seasonality=True
    , interval_width=0.95
)
my_model.fit(df)

future_dates = my_model.make_future_dataframe(periods=5, freq='B')
future_dates.tail()

forecast = my_model.predict(future_dates)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

my_model.plot(forecast, uncertainty=True)
plt.show()

我认为现在还可以使用多个自变量进行预测(使用 add_regressor?)。有人这样做吗?如果是这样,您能提供一些代码示例吗?让我们假设上述 df 中的自变量称为 X1。谢谢!

最佳答案

除非在拟合期间添加附加回归器,否则无法使用附加回归器进行预测。如果您想向模型添加回归量,您应该按照以下步骤操作(直接取自文档):

def nfl_sunday(ds):
    date = pd.to_datetime(ds)
    if date.weekday() == 6 and (date.month > 8 or date.month < 2):
         return 1

    else:
         return 0

df['nfl_sunday'] = df['ds'].apply(nfl_sunday)

m = Prophet()
m.add_regressor('nfl_sunday')
m.fit(df)

future['nfl_sunday'] = future['ds'].apply(nfl_sunday)

forecast = m.predict(future)
fig = m.plot_components(forecast)

关于python - 在 fbprophet 模型中使用多个自变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118803/

相关文章:

python - 尝试对两个数组求和

python-3.x - 从脚本运行时,Scrapy 不调用指定的管道

python-3.x - 使用 PIL 和 SKIMAGE 打开 PGM 文件时出错

python - 二维的 Scipy curve_fit 不起作用 - 对象太深?

python - python 3 中的文件读写

python - IDLE 3.4.3 运行模块时崩溃

python-3.x - 安装保管箱失败并损坏 pip3

python - 调试Python代码的方法?

python - 检查 pandas 行中是否存在值,如果存在,在哪些列中

python - 实现 PyObjc NsObject 子类