Python FBprophet, как разрешить использовать другие столбцы в качестве веса в прогнозировании
Я пытаюсь прогнозировать цены закрытия на основе доступных данных. Я начал использовать рамки FbPropet
прогнозировать значения. Смотрите следующее, что я пробовал:
из fbprophet импортировать пророка
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize']=(20,10)
plt.style.use('ggplot')
df = pd.read_csv("EURUSD_M1.csv",sep='\t',encoding="utf-16",usecols = [0,1,2,3,4])
df.head(5)
Выход:
Time open high low close
2018.05.31 23:59:00 1.16928 1.16935 1.16906 1.16906
2018.06.01 00:00:00 1.16879 1.16906 1.16852 1.16855
2018.06.01 00:01:00 1.16871 1.16884 1.16871 1.16879
2018.06.01 00:02:00 1.16879 1.16900 1.16872 1.16895
2018.06.01 00:03:00 1.16895 1.16895 1.16883 1.16890
Далее я попробовал:
df.rename(columns={'Time':'ds'}, inplace=True)
df['y'] = np.log(df.close)
df.head(5)
выход:
ds open high low close y
2018.05.31 23:59:00 1.16928 1.16935 1.16906 1.16906 0.156200
2018.06.01 00:00:00 1.16879 1.16906 1.16852 1.16855 0.155764
2018.06.01 00:01:00 1.16871 1.16884 1.16871 1.16879 0.155969
2018.06.01 00:02:00 1.16879 1.16900 1.16872 1.16895 0.156106
2018.06.01 00:03:00 1.16895 1.16895 1.16883 1.16890 0.156063
я знаю это ds
а также y
являются входной переменной для обучения модели в fbprophet
, Следовательно, поместил это в сам фрейм данных.
Но, как видно, я использую только цену закрытия в столбце y
, И вот как веса будут генерироваться в рамках.
Я хотел положить вес open high low
на прогнозе. Но я не понимаю, как я могу поместить полные данные в качестве входных данных, чтобы предсказать результат, используя fbprophet
,
Пожалуйста, предложите мне способ, если есть.
отредактированный
Я уже пытался использовать add_regressor
но столкнулся с проблемами, используя его при построении и прогнозировании:
future_Time_frame = model.make_future_dataframe(periods=4000, freq='T')
display(future_Time_frame.tail(10))
Выход:
ds
2018-07-02 18:30:00
2018-07-02 18:31:00
2018-07-02 18:32:00
2018-07-02 18:33:00
2018-07-02 18:34:00
2018-07-02 18:35:00
2018-07-02 18:36:00
2018-07-02 18:37:00
2018-07-02 18:38:00
2018-07-02 18:39:00
Следующий:
forecast = model.predict(future_Time_frame.tail(4000))
Ошибка:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-85-a7ed34b7336a> in <module>()
----> 1 forecast = model.predict(future_Time_frame.tail(4000))
/usr/local/lib/python3.5/dist-packages/fbprophet/forecaster.py in predict(self, df)
1036 if df.shape[0] == 0:
1037 raise ValueError('Dataframe has no rows.')
-> 1038 df = self.setup_dataframe(df.copy())
1039
1040 df['trend'] = self.predict_trend(df)
/usr/local/lib/python3.5/dist-packages/fbprophet/forecaster.py in setup_dataframe(self, df, initialize_scales)
249 if name not in df:
250 raise ValueError(
--> 251 'Regressor "{}" missing from dataframe'.format(name))
252
253 df = df.sort_values('ds')
ValueError: Regressor "high" missing from dataframe