Ложный пророк Сравнение регрессионной модели с Пророком Меты

Ложный пророк Сравнение регрессионной модели с Пророком Меты

Может ли моя швейцарская армейского ножа временных рядов — вдохновленная Пророком — конкурировать с оригиналом?

Фото от Piret Ilver на Unsplash

В том, что, вероятно, будет последняя часть в моем путешествии по созданию прогнозирования на основе замечательного пакета Пророка от Meta, я рассмотрю, как моя самодельная версия соотносится с оригиналом.

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

Приступим.

Замечание: я упоминаю другие части — две других статьи, чтобы быть точным. Первая статья рассматривает создание характеристик для временных рядов на основе подхода Пророка и может быть найдена здесь:

Ложный пророк: создание характеристик для домашней модели временных рядов

Развитие идей пакета Пророка от Meta для создания мощных характеристик моделей машинного обучения для временных рядов

towardsdatascience.com

В этой статье я рассмотрю создание модели с использованием наших новых замечательных характеристик. Здесь она находится:

Ложный пророк: самодельная модель регрессии временных рядов

Позаимствование идей от пророка Meta для создания мощной модели регрессии временных рядов

towardsdatascience.com

Большинство обсуждаемых здесь тем подробно рассматриваются в связанных статьях — рекомендуется прочитать, если вы интересуетесь деталями.

Данные

Мы используем данные об авариях на дорогах Великобритании¹, обобщенные по месяцам.

Изображение автора

Мы видим несколько характеристик временного ряда:

  • Ярко выраженный нисходящий тренд на протяжении всего ряда
  • Изменение скорости убывания где-то между 2012 и 2014 годами
  • Довольно сильная сезонность в начале ряда
  • Возможно, изменяющиеся сезонные эффекты, особенно к концу ряда.

Цель игры

У нас есть две модели — мы будем называть нашу самодельную модель Франкенштейна моделью Лассо, а Пророка от Meta — ну… Пророком.

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

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

Замечание: это по сути кросс-валидационный тест. Если вы знакомы со стандартными методами кросс-валидации, но не использовали их в анализе временных рядов, вам может быть полезным пункт (2) ниже.

На картинках

Мы можем визуализировать прогнозы на данных, не принадлежащих к обучающим, от каждой из моделей — Лассо красным цветом, Пророк синим — и сравнить их с реальными значениями.

Мы должны помнить, что каждый прогноз был построен с использованием всех данных до периода прогнозирования. Например, прогноз на 2010 год был построен с использованием данных до и включительно 2009 года.

Изображение автора

Это довольно ясная картинка: за исключением одного года (2013 года), Пророк отклоняется от марки.

Интересно отметить сходство прогнозных моделей, созданных этими двумя подходами:

  • Обе модели дают более низкие прогнозы – т.е. они отражают общую тенденцию к снижению.
  • Обе модели имеют внутригодовые повышения и серединные всплески – т.е. прогнозы создают схожую сезонную структуру.

На сколько точно отклоняются эти две модели от реальности? Нам нужно рассмотреть некоторые показатели производительности, чтобы выяснить это.

Числами

Мы будем измерять производительность, используя стандартные показатели – среднюю абсолютную ошибку (MAE), среднюю абсолютную процентную ошибку (MAPE) и среднеквадратичную ошибку (RMSE), а также новичка (по крайней мере, для меня): MASE.

Средняя абсолютная среднеквадратическая ошибка

Средняя абсолютная среднеквадратическая ошибка (MASE) – это “всеобщий показатель точности прогнозов без проблем, которые обнаруживаются в других показателях”³ и “может использоваться для сравнения методов прогнозирования в отдельных временных рядах и также для сравнения точности прогнозирования между рядами”³.

Математически MASE – это отношение ошибки прогноза, полученной вне времени, к ошибке прогноза на основе данных внутри выборки, полученным с помощью наивного метода прогнозирования. Поскольку мы используем месячные данные, я взял прогноз наивного прогноза в качестве значения в то же самое время в предыдущем году – например, прогноз на май 2012 года просто равен значению для мая 2011 года. Очень наивно.

При сравнении методов прогнозирования предпочтение отдается методу с наименьшим MASE³.

Важно отметить, что MASE > 1 означает, что метод прогнозирования показывает низкую точность по сравнению с наивным прогнозом.

Кстати: я использовал реализацию, описанную в статье по ссылке – т.е. “ошибка” представляет собой среднюю абсолютную ошибку. Я считаю, что мы можем использовать другие показатели производительности вместо MAE – например, MAPE – при условии, что показатель ошибки используется последовательно в расчете масштабированной ошибки.

Результаты

Давайте подведем итоги производительности модели по метрикам, о которых мы говорили:

Изображение автора

Это вполне полная победа модели LASSO, хотя Пророк иногда превосходит его.

Ножи и перестрелки?

Как мы видели, результаты не радуют для поклонников Пророка: инструмент Meta умудряется одержать несколько побед (в зависимости от выбранной метрики), избегая полного потерпеть поражение. Нейтральные комментаторы могут предложить вернуться в клубный дом для переоценки тактики.

Хотя результаты не очень радуют для Пророка, есть несколько причин, почему следует ожидать подобную производительность.

Признаки

Модель LASSO использует специально разработанные признаки для этого конкретного временного ряда. Множество входных признаков, доступных для нее, по сути, является надмножеством относительно доступных для Пророка, с небольшим дополнением.

Кроме того, некоторые признаки в модели LASSO немного отличаются. Например, признаки, описывающие потенциальные точки изменения, в модели LASSO не ограничены так же, как в модели Пророка.

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

Моделирование

Данные, которые не участвовали в обучении модели, не такие “невидимые”, как я описывал.

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

В “обычных” упражнениях по оптимизации гиперпараметров мы обычно ожидаем увеличения производительности на 1% – 2%; в случае временного ряда увеличение производительности, вероятно, гораздо больше, так как “за пределами выборки” действительно есть “вне времени”.

Пора закончить с Пророком, да?

Не спешите… эта серия статей, конечно, подчеркнула несколько вещей – давайте обсудим их поподробнее.

Изначально Пророк работает невероятно хорошо. Хотя его можно побить, для этого требуется немного работы – гораздо больше, чем 10 строк кода, необходимых для запуска Пророка и предсказаний.

Интерпретируемость модели LASSO явно превосходит то, что доступно в Пророке. Да, Пророк дает нам оценки неопределенности для прогнозов, но мы не можем понять, что именно побуждает предсказания. Я даже не уверен, что мы можем применить метод SHAP к Пророку.

Я также обнаружил, что Пророк не так прост в настройке. Возможно, это потому, что я не являюсь продвинутым пользователем пакета, а может быть, из-за сложности настройки параметров. Это точно не относится к модели LASSO.

Хотя подход LASSO, несомненно, представляет собой улучшение характеристик и интерпретируемости, возможно, нам действительно нужно использовать оба подхода: один в качестве проверки для другого. Например, если “наивная” модель Пророка производит осмысленные прогнозы, то, возможно, будет разумным воспроизвести подход LASSO (так называемый “Ложный Пророк”), чтобы достичь максимальной производительности.

Это все от меня. Надеюсь, вам понравилась эта серия статей так же, как мне было приятно их написать.

Как всегда, пожалуйста, дайте мне знать ваше мнение – мне действительно интересно услышать о ваших опытах с Пророком или моделировании временных рядов разными способами.

До следующего раза.

Ссылки и полезные ресурсы

  1. https://roadtraffic.dft.gov.uk/downloads использовано в соответствии с Лицензией открытого правительства (nationalarchives.gov.uk)
  2. Давайте сделаем: Кросс-валидация временных рядов | Python в ясном понимании
  3. Средняя абсолютная масштабируемая ошибка – Википедия