Содержание поста-книги "Прикладной анализ временных рядов, том 3 в двух частях (709-стр. pdf + 172-стр. pdf, 44 Jupyter-тетрадки)"
ЧАСТЬ 18. БИБЛИОТЕКА FACEBOOK PROPHET 6
1. Математический аппарат Facebook Prophet (на основе адаптированного перевода статьи «Forecasting at scale» от Шона Дж. Тейлора и Бенджамина Летама, входящих в команду разработчиков Facebook Prophet) 6
1.1. Введение 6
1.2. Особенности временных рядов в бизнес-задачах 8
1.3. Прогнозная модель Prophet 10
1.4. Автоматизация оценки качества прогнозов 26
1.5. Библиография 30
2. Установка Prophet 32
2.1. Установка в macOS 32
2.2. Установка в Windows 32
3. Построение простых моделей Prophet 33
3.1. Ежедневные данные 33
3.2. Ежемесячные данные 39
3.3. Почасовые данные 42
3.4. Данные с гэпами 46
4. Работа с сезонностью 52
4.1. Понимание аддитивной и мультипликативной сезонностей 52
4.2. Моделирование сезонности с помощью порядка Фурье 59
4.3. Добавление собственных сезонностей 64
4.4. Добавление условных сезонностей 68
4.5. Регуляризация сезонности 73
5. Добавление праздников 82
5.1. Добавление национальных праздников 82
5.2. Добавление праздников штатов/провинций 88
5.3. Добавление собственных праздников 89
5.4. Создание многодневных праздников 91
5.5. Регуляризация влияния праздников 94
6. Типы роста 99
6.1. Применение линейного роста 99
6.2. Знакомство с логистической функцией 101
6.3. Получение прогнозов для моделей логистического роста с насыщением 103
7. Точки изменения тренда 118
7.1. Автоматическое определение точек изменения тренда 118
7.2. Регуляризация точек изменения 124
7.3. Назначение пользовательских точек изменения 129
8. Добавление регрессоров 136
8.1. Добавление бинарных регрессоров 136
8.2. Добавление непрерывных регрессоров 141
8.3. Интерпретация регрессионных коэффициентов 143
9. Выбросы и особые события 146
9.1. Обработка выбросов, вызывающих сезонные скачки 146
9.2. Обработка выбросов, являющихся причиной широких доверительных интервалов 151
9.3. Автоматическое обнаружение выбросов 154
9.4. Моделирование выбросов как особых событий 160
9.5. Моделирование шоков типа локдаунов во время пандемии COVID-19 163
10. Доверительные интервалы 174
10.1. Моделирование неопределенности тренда 174
10.2. Моделирование неопределенности сезонности 181
11. Перекрестная проверка 188
11.1. Перекрестная проверка с автоматически сгенерированными пороговыми точками 188
11.2. Перекрестная проверка с пользовательскими пороговыми точками 202
11.3. Обычная оптимизация гиперпараметров по сетке на основе перекрестной проверки 206
11.4. Байесовская оптимизация гиперпараметров на основе перекрестной проверки 209
12. Прогнозирование нескольких временных рядов 212
ЧАСТЬ 19. БИБЛИОТЕКА ETNA 239
1. Общее знакомство 239
1.1. Создание объекта TSDataset 247
1.2. Визуализация рядов объекта TSDataset 251
1.3. Получение сводки характеристик по объекту TSDataset 252
2. Модель наивного прогноза 253
2.1. Один временной ряд 253
2.2. Несколько временных рядов 258
3. Модель скользящего среднего 261
3.1. Один временной ряд 261
3.2. Несколько временных рядов 264
4. Модель сезонного скользящего среднего 265
4.1. Один временной ряд 265
4.2. Несколько временных рядов 268
5. Модель SARIMAX 269
5.1. Один временной ряд 270
5.2. Несколько временных рядов 277
6. Модель Хольта-Винтерса (модель тройного экспоненциального сглаживания, модель ETS) 278
6.1. Один временной ряд 279
6.2. Несколько временных рядов 283
7. Модель Prophet 284
7.1. Один временной ряд 284
7.2. Несколько временных рядов 290
8. Модель CatBoost 296
8.1. Один временной ряд 296
8.2. Несколько временных рядов 316
9. Модель линейной регрессии с регуляризацией «эластичная сеть» 318
9.1. Один временной ряд 318
9.2. Несколько временных рядов 321
10. Объединение процедуры построения модели, оценки качества и визуализации прогнозов в одной функции 322
10.1. Один временной ряд 323
10.2. Несколько временных рядов 324
11. Перекрестная проверка нескольких моделей 325
11.1. Один временной ряд 325
11.2. Несколько временных рядов 327
12. Ансамбли 331
12.1. Один временной ряд 331
12.2. Несколько временных рядов 332
13. Стекинг 333
14. Создание собственных классов для обучения моделей 334
14.1. Использование функции train_and_evaluate_model() для быстрого построения базовых моделей 344
14.2. Ансамбли из собственных классов 349
15. Импутация пропусков 352
16. Работа с трендом и сезонностью 361
17. Обработка выбросов 381
18. Собираем все вместе 387
19. Инференс или применение сохраненного конвейера к новым данным 402
20. Модели нейронных сетей 409
21. Оптимизация гиперпараметров с помощью функции run_optuna() 423
22. Оптимизация гиперпараметров с помощью классов Tune и Auto 428
22.1. Оптимизация гиперпараметров внутри конвейера с помощью класса Tune 428
22.2. Оптимизация гиперпараметров разных конвейеров с помощью класса Auto 441
23. Задача Райффайзен Банка (8 временных рядов) 447
23.1. Описание задачи 447
23.2. Построение прогнозной модели для горизонта в 90 дней (на продажи в конкретном магазине не влияют продажи и рекламная активность остальных магазинов) 447
23.3. Оптимизация гиперпараметров модели с горизонтом в 90 дней (на продажи в конкретном магазине не влияют продажи и рекламная активность остальных магазинов) с помощью функции run_optuna() 465
23.4. Построение прогнозной модели для горизонта в 729 дней (на продажи в конкретном магазине не влияют продажи и рекламная активность остальных магазинов) 503
23.5. Сравнение прогнозных конвейеров, созданных вручную и с помощью ETNA 516
24. Задача Store Sales – Time Series Forecasting (1782 временных ряда) 551
24.1. Описание задачи 551
24.2. Добавление экзогенных переменных – регрессоров 553
24.3. Добавление экзогенных переменных – регрессоров и экзогенных переменных – не-регрессоров 561
25. Задача Store Item Demand Forecasting Challenge (500 временных рядов) 565
26. Отбор признаков (на примере задачи Store Item Demand Forecasting Challenge) 575
27. Иллюстрация экспресс-решения с помощью функций transform_etna_format(), train_and_evaluate_ model(), etna_cv_optimize() и класса Auto (на примере задачи NN5) 585
28. Кластеризация временных рядов 598
29. Классификация временных рядов 612
30. Анализ прогнозируемости 618
31. Создание Streamlit-приложений на основе моделей библиотеки ETNA 627
Пишем программный код приложения 627
Работа с приложением 649
Работа с экзогенными переменными 665
Развертывание приложения на платформе Streamlit Community Cloud 671
32. Прогнозирование иерархических временных рядов 674
32.1. Введение 674
32.2. Создание иерархического набора, получение информации об иерархической структуре вручную 678
32.3. Создание иерархического набора, получение информации об иерархической структуре автоматически с помощью метода .to_hierarchical_dataset() класса TSDataset 684
32.4. Подходы к прогнозированию иерархических временных рядов 689
32.5. Применение восходящего и нисходящего подходов в ETNA 693
32.6. Использование экзогенных переменных при прогнозировании иерархических временных рядов 704
ЧАСТЬ 20. БИБЛИОТЕКА LINKEDIN GREYKITE 4
1. Математический аппарат Linkedin Greykite (на основе адаптированного перевода статьи «A flexible forecasting model for production systems» от R. Hosseini, K. Yang, A. Chen, S. Patra, входящих в команду разработчиков Linkedin Greykite) 4
1.1. Введение 4
1.2. Модели условного среднего и волатильности 7
1.3. Поиск точек изменения 14
1.4. Пример применения на данных велопроката (байкшеринга) 19
1.5. Оценка качества и бенчмаркинг (сравнительный анализ) 26
1.6. Итоги 30
1.7. Библиография 30
2. Начало работы 32
2.1. Установка Greykite 32
2.2. Построение простых моделей Greykite 32
ЧАСТЬ 21. БИБЛИОТЕКА SKTIME 56
1. Общее знакомство 56
1.1. Загрузка и визуализация данных 56
1.2. Разбиение набора на обучающую и тестовую выборки с учетом времени 57
1.3. Этапы построения прогнозной модели в sktime 58
1.4. Создание горизонта модели 58
1.5. Построение первых прогнозных моделей 60
1.6. Работа с экзогенными временными рядами 63
1.7. Скользящие обновления модели и прогнозов (скользящее развертывание модели) 64
1.8. Вероятностное прогнозирование: прогнозные интервалы, квантили, дисперсия, прогнозы на основе распределения 69
1.9. Перекрестная проверка расширяющимся или скользящим окном 72
1.10. Арсенал встроенных прогнозных моделей, предлагаемых sktime 76
1.11. Прогнозирование нескольких временных рядов 83
1.12. Продвинутое моделирование 84
1.13. Прогнозирование иерархических временных рядов 97
1.14. Получение справочной информации о прогнозных моделях 98
2. Подробный разбор стратегий многошагового прогнозирования 101
2.1. Прямая стратегия многошагового прогнозирования 103
2.2. Рекурсивная стратегия многошагового прогнозирования 111
2.3. Гибридная стратегия многошагового прогнозирования 119
2.4. Стратегия с множеством выходов 128
3. Дентрендинг и десезонализация для моделей бустинга 133
3.1. Временной ряд с трендом и мультипликативной сезонностью (набор данных Air Passengers) 134
3.2. Временной ряд с сильным трендом (набор данных WPI) 155
4. Прогнозирование иерархических рядов 157
Индивидуальный временной ряд – абстракный тип (scitype) Series, машинный тип (mtype) pd.DataFrame 158
Панели (плоские коллекции) временных рядов - абстрактный тип (scitype) Panel, машинный тип (mtype) pd-multiindex 159
Иерархические временные ряды – абстрактный тип (scitype) Hierarchical, машинный тип (mtype) pd_multiindex_hier 160
Автоматизированная векторизация (транслирование) прогнозных моделей и трансформеров 161
Иерархическое согласование 166
прикладной_анализ_временных_рядов