Вопрос или проблема
В пакете автоматического моделирования временных рядов, AutoTS, когда вы инициализировали модель следующим образом:
model = AutoTS(
forecast_length=forecast_length,
frequency=frequency,
prediction_interval=prediction_interval,
ensemble=ensemble,
model_list=model_list,
transformer_list=transformer_list,
transformer_max_depth=transformer_max_depth,
max_generations=gens,
metric_weighting=metric_weighting,
initial_template=initial_template,
aggfunc="first",
models_to_validate=models_to_validate,
model_interrupt=True,
num_validations=num_validations,
validation_method=validation_method,
constraint=None,
drop_most_recent=drop_most_recent, # если последние данные неполные, также не забудьте увеличить forecast_length
preclean=preclean,
models_mode=models_mode,
# no_negatives=True,
# subset=100,
# prefill_na=0,
# remove_leading_zeroes=True,
# current_model_file=f"current_model_{forecast_name}",
generation_timeout=generation_timeout,
n_jobs=n_jobs,
verbose=1,
вы можете затем запустить либо:
(1): model.fit(data)
или (2): model.fit_data(data)
Чем (2) отличается от (1)? Правильно ли я понимаю, что (2) позволяет обновлять уже существующую модель, которая уже была обучена и валидация проведена, с помощью новых данных, без необходимости повторного обучения или валидации модели на новых данных?
Фактически, гарантирует ли (2), что данные, прогнозируемые с помощью model.predict, представляют прогнозы, начинающиеся на шаг вперед от последней временной точки в ‘data’, наборе данных в (2), а не на шаг вперед от исходных данных, на которых она была обучена?
Ответ или решение
В контексте использования пакета автоматического моделирования временных рядов AutoTS, основное различие между методами fit
и fit_data
может быть понято через их предназначение, функциональные возможности и применимость в различных бизнес- и аналитических сценариях.
Теория: Разница между fit
и fit_data
Метод fit
, как и в большинстве библиотек машинного обучения, предназначен для полноценной тренировки модели на предоставленных данных. Это включает в себя процесс обучения, валидации и оптимизации параметров модели на основе выбранного вами алгоритма и конфигурации. То есть, при вызове метода fit
вы создаете и валидируете модель "с нуля", используя полный набор данных, который вы передадите.
С другой стороны, fit_data
предназначен для обновления существующей модели с новыми данными, не перетренировывая весь алгоритм. Это особенно полезно в ситуациях, когда у вас уже есть предварительно обученная и валидированная модель, и ваша цель — просто обновить её сегмент новых данных или скорректировать прогнозы в соответствии с актуальной информацией.
Пример: Практическое применение fit
и fit_data
Предположим, ваша компания занимается прогнозированием продаж и вы используете AutoTS для этой задачи. На начальном этапе вы собрали данные о продажах за последние два года и провели тренировку модели, используя метод fit
. Это позволило вам не только обучить модель, но и протестировать её на валидированном наборе данных, чтобы удостовериться в её адекватности и точности прогнозов.
Теперь представьте, что у вас есть новые данные за последний квартал. В данном случае, вместо того чтобы снова использовать метод fit
и выполнять полную тренировку модели, вы можете применить метод fit_data
. Это позволит вам эффективно обновить ситуацию, не тратя лишнего времени и вычислительных ресурсов на повторную валидацию и тренировку модели с нуля. В итоге, fit_data
позволяет вам сосредоточиться на актуальных изменениях в ваших данных, сохраняя при этом изначальную структуру модели и улучшая точность прогнозов на основе новой информации.
Применение: Как использовать fit_data
для бизнес-целей
Использование метода fit_data
имеет значительные преимущества в бизнес-контексте, особенно в условиях быстро меняющихся данных. Например, если вы работаете в ритейле и сезонные тренды или форс-мажорные обстоятельства влияют на ваши продажи, умение быстро адаптировать ваши прогнозы без необходимости полной переработки модели может оказаться крайне полезным. При помощи fit_data
, вы можете фокусироваться на актуализации своих прогнозов и поддержании их в контексте постоянно меняющегося рынка.
Кроме того, fit_data
может уменьшить вычислительные затраты, особенно если ваш набор данных весьма велик. Обновление модели с помощью новых данных и маленьких инкрементов может быть гораздо более экономичным с точки зрения ресурсов, чем полное "переобучение" модели.
Заключение
Таким образом, различие между fit
и fit_data
в AutoTS заключается в том, как они относятся к тренированию и обновлению моделей временных рядов. fit
используется для создания и валидации модели "с нуля", в то время как fit_data
фокусируется на добавлении новых данных к уже существующей модели. Это отличие предоставляет аналитикам и бизнес-пользователям гибкость и уверенность в способности быстро адаптироваться к новым данным без беспокойства о чрезмерных ресурсозатратах и временных издержках, связанных с полной переобработкой модели.