先知Python ValueError:数据框缺少回归变量

时间:2018-08-23 23:27:27

标签: python facebook-prophet

我正在尝试将Prophet软件包的最新(第二版)0.3版用于Python。

我的模型应该包括一个外源回归器,但是我收到一个ValueError,指出数据帧中确实缺少真正的回归器。这是错误还是我在做什么错?

#Random Dataset Preparation

import random
random.seed(a=1)

df = pandas.DataFrame(data = None, columns = ['ds', 'y', 'ex'], index = range(50))
datelist = pandas.date_range(pandas.datetime.today(), periods = 50).tolist()

y = numpy.random.normal(0, 1, 50)
ex = numpy.random.normal(0, 2, 50)

df['ds'] = datelist
df['y'] = y
df['ex'] = ex

#Model
prophet_model = Prophet(seasonality_prior_scale = 0.1)
Prophet.add_regressor(prophet_model, 'ex')
prophet_model.fit(df)
prophet_forecast_step = prophet_model.make_future_dataframe(periods=1)

#Result-df
prophet_x_df = pandas.DataFrame(data=None, columns=['Date_x', 'Res'], index = range(int(len(y))))

#Error
prophet_x_df.iloc[0,1] = prophet_model.predict(prophet_forecast_step).iloc[0,0] 

2 个答案:

答案 0 :(得分:1)

您首先需要创建一个列,该列的回归值必须同时存在于拟合和预测数据框中。
Refer prophet docs

答案 1 :(得分:0)

make_future_dataframe仅生成带有ds列的数据帧。 您需要在prophet_forecast_step数据框中添加“ ex”列,才能将其用作回归器