Могу ли я использовать перевод обучения в Facebook пророка? - PullRequest
0 голосов
/ 24 мая 2018

Я хочу, чтобы моя модель пророка предсказывала значения для каждого 10-минутного интервала в течение следующих 24 часов (например, 24 * 6 = 144 значения).

Допустим, я обучил модель на огромной (более 900 000)строк) .csv файл, в котором образец строки ...

ds=2018-04-24 16:10, y=10
ds=2018-04-24 16:20, y=14
ds=2018-04-24 16:30, y=12

...

Поэтому я вызываю mode.fit(huge_df) и жду 1-2 секунды, чтобы получить 144 значения.

А потом проходит час, и я хочу настроить свой прогноз на следующие (144 - 6) 138 значений с учетом новых данных (6 строк).

Как я могу настроить своего существующего пророкамодель без необходимости звонить mode.fit(huge_df + live_df) и ждать несколько секунд снова?Я хотел бы иметь возможность позвонить mode.tune(live_df) и получить мгновенный прогноз.

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

Насколько я знаю, это не совсем возможно.Я думаю, что они используют вариант алгоритма оптимизации BFGS, чтобы максимизировать апостериорную вероятность моделей.Поэтому, как я понимаю, единственный способ обучения модели - это учесть весь набор данных, который вы хотите использовать.Причина, по которой трансферное обучение работает с нейронными сетями, заключается в том, что это просто инициализация веса (параметра), а затем обратное распространение выполняется итеративно в стандартной схеме обучения SGD.Теоретически вы можете инициализировать параметры для параметров предыдущей модели в случае пророка, который может работать, а может и не работать, как ожидалось.Однако я не знаю, что что-то из подобных в настоящее время реализовано (но, поскольку он с открытым исходным кодом, вы могли бы попробовать его, надеясь, что немного сократите время конвергенции).

Теперь, насколько это касается практического совета,Вам, вероятно, не нужны все данные, просто укажите, что вам действительно нужно для решения проблемы.Например, не имеет смысла иметь данные за 10 лет, если у вас есть только месячная сезонность.Также в зависимости от того, насколько сильно ваши данные автокоррелированы, вы можете немного уменьшить частоту дискретизации, не теряя никакой предсказательной силы.Другой идеей было бы попробовать алгоритм, который подходит для онлайн-обучения (или пакетного обучения). Например, вы можете попробовать CNN с расширенной сверткой.

0 голосов
/ 12 мая 2019

Проблемы временного ряда весьма отличаются от обычных проблем машинного обучения.Когда мы дрессируем классификатор кошек / собак, набор функций кошек и собак не изменится мгновенно (эволюция идет медленно).Но когда дело доходит до проблем временного ряда, обучение должно проводиться каждый раз перед прогнозированием.Это становится еще более важным, когда вы делаете однофакторное прогнозирование (как в вашем случае), поскольку единственная функция, которую мы предоставляем модели, - это прошлые значения, и эти значения будут меняться в каждом случае.Из-за этих проблем я не думаю, что что-то вроде трансферного обучения будет работать во временных рядах.

Вместо этого вы можете попытаться преобразовать свою проблему временных рядов в проблему регрессии с помощью метода скользящих окон.Затем вы можете сохранить эту модель и получить ваши прогнозы.Но обязательно тренируйте его снова и снова через короткие промежутки времени, например, раз в день или около того, в зависимости от того, как часто вам нужен прогноз.

...