#python #time-series #concurrent.futures #facebook-prophet #process-pool
Вопрос:
Я использую библиотеку Пророка facebook для составления прогноза, но прежде чем запустить его в производство, я хочу проверить его с помощью включенного пакета перекрестной проверки. У меня есть машина с 64 ГБ оперативной памяти и Ryzen 9 5950X. Я получаю эту ошибку: «BrokenProcessPool: процесс в пуле процессов был внезапно прерван, когда будущее было запущено или ожидалось». после нескольких часов вычислений.
Излишне говорить, что это расстраивает, но когда я ищу его, я не могу найти никого с той же проблемой конкретно. Многие люди сталкиваются с этой ошибкой, используя библиотеку «concurrent.futures», я предполагаю, что она встроена в пакет prophet. Самая распространенная причина, по которой люди допускают эту ошибку, — это недостаток памяти. Но это не относится ко мне. Использование памяти никогда не превышало 20 ГБ (так что это в пределах допустимого).
Я попробовал на другой машине, которая работает на совершенно другой платформе, и у нее также была та же ошибка.
Это мой код:
#%%
start = time.time()
prophet = Prophet(yearly_seasonality=False,
weekly_seasonality=True,
daily_seasonality=True,
interval_width=0.9)
prophet.add_country_holidays('Netherlands')
prophet.fit(df.reset_index())
prophet_time = time.time() - start
#%%
start = time.time()
prophet_cv = cross_validation(prophet, initial='1788 days', period='24 hours', horizon = '24 hours', parallel = 'processes')
prophet_cv_time = time.time() - start
и это мой df:
df.reset_index()
ds y
0 2015-08-09 22:00:00 30.60
1 2015-08-09 23:00:00 27.19
2 2015-08-10 00:00:00 25.49
3 2015-08-10 01:00:00 24.77
4 2015-08-10 02:00:00 24.45
... ...
52651 2021-08-11 17:00:00 127.77
52652 2021-08-11 18:00:00 139.87
52653 2021-08-11 19:00:00 125.01
52654 2021-08-11 20:00:00 117.00
52655 2021-08-11 21:00:00 103.00
[52656 rows x 2 columns]
Когда я запускаю свой код, вы можете видеть, что он должен переобучать модель 405 раз и каждый раз создавать 24-часовой прогноз.
INFO:fbprophet:Making 405 forecasts with cutoffs between 2020-07-02 21:00:00 and 2021-08-10 21:00:00
INFO:fbprophet:Applying in parallel with <concurrent.futures.process.ProcessPoolExecutor object at 0x00000260E14325B0>
Любая помощь в этом вопросе будет вам очень признательна!
С уважением