Я хочу прогнозировать почасовые значения температуры, используя модель FBProphet. До сих пор я обучил модель только с переменной DS и Y, и она дает мне хорошие результаты. Но теперь я хочу добавить дополнительные регрессоры, а затем выполнить прогноз. Но основная проблема заключается в том, как прогнозировать будущее с ним (данные за пределами моего тестового набора) < /p>
Вот что я сделал до сих пор. < /P>
# Data preparation and feature engineering
temp = df[["Temperature"]].apply(kelvinToDegC).copy()
temp["hourlyLag"] = temp["Temperature"].shift(1).bfill()
temp["dailyLag"] = temp["Temperature"].shift(24).bfill()
temp["weeklyLag"] = temp["Temperature"].shift(24*7).bfill()
temp["movMean"] = temp["Temperature"].rolling(window="24h").mean().bfill()
temp["mStd"] = temp["Temperature"].rolling(window="24h").std().bfill()
temp["ub"] = temp["movMean"] + (1.6 * temp["mStd"])
temp["lb"] = temp["movMean"] - (1.6 * temp["mStd"])
temp["devFromMean"] = temp["movMean"] - temp["Temperature"]
temp["devFromUB"] = temp["ub"] - temp["Temperature"]
temp["devFromLB"] = temp["lb"] - temp["Temperature"]
temp["hour"] = temp.index.hour
temp["dayOfYear"] = temp.index.day
temp["month"] = temp.index.month
temp = temp.reset_index()
temp.rename(columns={"Date": "ds", "Temperature": "y"}, inplace=True)
model = Prophet()
model.add_regressor("hourlyLag")
model.add_regressor("dailyLag")
model.add_regressor("weeklyLag")
model.add_regressor("movMean")
model.add_regressor("mStd")
model.add_regressor("ub")
model.add_regressor("lb")
model.add_regressor("devFromMean")
model.add_regressor("devFromUB")
model.add_regressor("devFromLB")
model.add_regressor("hour")
model.add_regressor("dayOfYear")
model.add_regressor("month")
model.fit(train)
These are the mae and mape scores
MAE: 0.00
MAPE: 0.17 %
now future = model.make_future_dataframe(periods=24 * 365 * 3, freq="h")
I am getting this error
ValueError Traceback (most recent call last)
Cell In[68], line 2
1 future = model.make_future_dataframe(periods=8760, freq="h")
----> 2 predictions = model.predict(future)
File c:\Users\5923imtiaz\AppData\Local\anaconda3\envs\ai\Lib\site-packages\prophet\forecaster.py:1270, in Prophet.predict(self, df, vectorized)
1268 if df.shape[0] == 0:
1269 raise ValueError('Dataframe has no rows.')
-> 1270 df = self.setup_dataframe(df.copy())
1272 df['trend'] = self.predict_trend(df)
1273 seasonal_components = self.predict_seasonal_components(df)
File c:\Users\5923imtiaz\AppData\Local\anaconda3\envs\ai\Lib\site-packages\prophet\forecaster.py:297, in Prophet.setup_dataframe(self, df, initialize_scales)
295 for name in self.extra_regressors:
296 if name not in df:
--> 297 raise ValueError(
298 'Regressor {name!r} missing from dataframe'
299 .format(name=name)
300 )
301 df[name] = pd.to_numeric(df[name])
302 if df[name].isnull().any():
ValueError: Regressor 'hourlyLag' missing from dataframe
Подробнее здесь: https://stackoverflow.com/questions/794 ... -fbprophet
Как прогнозировать значения с множественными регрессорами с помощью fbprophet? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как прогнозировать значения с множественными регрессорами с помощью fbprophet?
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-