Существует ли способ запуска модели или серии моделей в пакете AutoTS без каких-либо преобразований?

Вопрос или проблема

Я хочу запустить серию моделей в пакете автоматического временного ряда, AutoTS в Python. Одной из моделей, которую я пытаюсь запустить в качестве одного из претендентов, является наивная модель. Однако, всякий раз, когда я пытаюсь запустить наивную модель, пакет autoTS всегда запускает ее с трансформациями:

Я использую следующий код:

modellist=[“LastValueNaive”]

metric_weighting = {
‘smape_weighting’: 0,
‘mae_weighting’: 100,
‘mlvb_weighting’:0,
‘rmse_weighting’: 0,
‘made_weighting’: 0,
‘mage_weighting’: 0,
‘mle_weighting’: 0,
‘imle_weighting’: 0,
‘spl_weighting’: 0,
‘containment_weighting’: 0,
‘contour_weighting’: 0,
‘runtime_weighting’: 0,
}
forecast_length=1

model = AutoTS(forecast_length=forecast_length+3,prediction_interval=0.95, model_list=modellist, frequency=”infer”, ensemble=”horizontal”, no_negatives=True, max_generations=1,num_validations=0,models_to_validate=20,transformer_list={},preclean={“fillna”:’rolling_mean’, “transformations”: {}, “transformation_params”: {}},metric_weighting=metric_weighting)

model.fit(data,weights=weight,future_regressor=regressortrain)

Несмотря на то, что я исключил трансформации во всех возможных местах, таких как в предварительной очистке и установке transformation_list в пустое множество, модель все равно запускает наивный прогноз с трансформациями, которые существенно влияют на предсказание; я хочу запустить чистый наивный прогноз через autoTS, который представляет собой не более чем последнее значение. Как мне это сделать?

Во всех случаях предсказание от autoTS на данный момент намного хуже, чем чистое наивное предсказание, выполненное вне этого пакета, и я подозреваю, что это связано с трансформациями, которые он выполняет.

Ответ или решение

Конечно, давайте подробнее рассмотрим использование пакета AutoTS в Python для выполнения моделей временных рядов, особенно с акцентом на создание наивных моделей без применения трансформаций. Работа с временными рядами требует особой предосторожности в выборе подходящих алгоритмов и параметров, которые могут существенно повлиять на качество прогнозирования.

Теория (Theory)

AutoTS – это библиотека Python, которая автоматически тестирует и сопоставляет различные модели временных рядов с целью нахождения оптимальной модели для вашего набора данных. Она предоставляет возможность легко тестировать, сопоставлять и оптимизировать модели без глубоких знаний в области программирования и статистики.

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

AutoTS предоставляет различные параметры для настройки моделей, включая возможность указать список моделей, метрики оценки их производительности и трансформации данных. Однако оформление данных без каких-либо трансформаций может оказаться нетривиальной задачей, учитывая наличие встроенной логики для предварительной обработки данных.

Пример (Example)

В предоставленном вами коде важно обратить внимание на параметры, которые вы задаете при инстанцировании класса AutoTS:

modellist=["LastValueNaive"]
metric_weighting = {
    'smape_weighting': 0,
    'mae_weighting': 100,
    'mlvb_weighting':0,
    'rmse_weighting': 0,
    'made_weighting': 0,
    'mage_weighting': 0,
    'mle_weighting': 0,
    'imle_weighting': 0,
    'spl_weighting': 0,
    'containment_weighting': 0,
    'contour_weighting': 0,
    'runtime_weighting': 0,
}
forecast_length=1
model = AutoTS(
    forecast_length=forecast_length+3,
    prediction_interval=0.95,
    model_list=modellist,
    frequency="infer",
    ensemble="horizontal",
    no_negatives=True,
    max_generations=1,
    num_validations=0,
    models_to_validate=20,
    transformer_list={},
    preclean={"fillna":'rolling_mean', "transformations": {}, "transformation_params": {}},
    metric_weighting=metric_weighting
)
model.fit(data, weights=weight, future_regressor=regressortrain)

Ключевым моментом является задание transformer_list={} и preclean={"transformations": {}, "transformation_params": {}}. Однако, как вы отметили, AutoTS все равно применяет какие-то преобразования, которые негативно сказываются на качестве наивной модели.

Применение (Application)

Для решения вашей задачи я рекомендую следующие подходы:

  1. Изучение исходного кода AutoTS: Откройте исходный код библиотеки, чтобы глубже вникнуть в процесс трансформаций. Это может помочь выявить автоматические преобразования, которые пакет может выполнять, даже если они не прописаны явно.

  2. Обновление библиотеки: Убедитесь, что вы используете последнюю версию AutoTS. Разработчики постоянно работают над исправлением багов и улучшением функциональности, поэтому возможно, что в новой версии уже решена проблема избыточных трансформаций.

  3. Ручное управление данными: Прежде чем передавать данные в AutoTS, самостоятельно выполните предварительную обработку (если это необходимо), и вручную очистите данные от аномалий или выбросов. Это позволит передать в библиотеку уже подготовленный набор данных.

  4. Использование логирования: Направьте внимание на параметры forecast_length, no_negatives и другие настройки, которые могут по умолчанию выполнять скрытые преобразования. Добавление детального логирования в процесс может помочь отследить, где именно происходят нежелательные изменения данных или настроек модели.

  5. Обратная связь с сообществом: Не стесняйтесь обратиться к документации или сообществу пользователей AutoTS на GitHub или специализированных форумах. Возможно, кто-то уже сталкивался с аналогичной проблемой и может предложить конкретное решение.

Следуя этим рекомендациям, у вас будет больше шансов успешно настроить AutoTS для выполнения наивных прогноза без применения дополнительных трансформаций, и таким образом, получите результаты, которые будут более валидны с точки зрения вашего бизнес-кейса.

Оцените материал
Добавить комментарий

Капча загружается...