Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Прогнозирование временных рядов с помощью Facebook Prophet, ETNA, sktime и LinkedIn Greykite

Строим, настраиваем, улучшаем модели прогнозирования временных рядов с помощью специальных библиотек
Покупка
Новинка
Артикул: 855988.01.99
Доступ онлайн
2 599 ₽
В корзину
Книга посвящена популярным библиотекам прогнозирования временных рядов Prophet, sktime, ETNA и Greykite. Разбирается математический аппарат и API каждой библиотеки. Показаны примеры решения задач прогнозирования, классификации и кластеризации временных рядов, проиллюстрированы темы конструирования и отбора признаков для временных рядов. Книга будет интересна специалистам по data science, регулярно решающим задачи с временными рядами. Для изучения материала желателен опыт работы на Python и базовые знания в области машинного обучения.
Груздев, А. В. Прогнозирование временных рядов с помощью Facebook Prophet, ETNA, sktime и LinkedIn Greykite : строим, настраиваем, улучшаем модели прогнозирования временных рядов с помощью специальных библиотек : практическое руководство / А. В. Груздев. – Москва : ДМК Пресс, 2023. - 782 с. – ISBN 978-5-93700-212-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2204240 (дата обращения: 06.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
А. В. Груздев
Прогнозирование  
временных рядов с помощью 
Facebook Prophet, ETNA, 
sktime и LinkedIn Greykite
Строим, настраиваем, улучшаем 
модели прогнозирования 
временных рядов с помощью 
специальных библиотек
Москва, 2023


УДК 004.04
ББК  32.372
Г90
Груздев А. В.
Г90 
Прогнозирование временных рядов с помощью Facebook Prophet, ETNA, 
sktime и LinkedIn Greykite: Строим, настраиваем, улучшаем модели прогнозирования временных рядов с помощью специальных библиотек. – М.: 
ДМК Пресс, 2023. – 780 с.: ил.
ISBN 978-5-93700-212-9
Книга посвящена популярным библиотекам прогнозирования временных 
рядов Prophet, sktime, ETNA и Greykite. Разбирается математический аппарат 
и API каждой библиотеки. Показаны примеры решения задач прогнозирования, 
классификации и кластеризации временных рядов, проиллюстрированы темы 
конструирования и отбора признаков для временных рядов. Книга будет интересна специалистам по data science, регулярно решающим задачи с временными 
рядами. Для изучения материала желателен опыт работы на Python и базовые 
знания в области машинного обучения.
УДК 004.04
ББК 32.372
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать 
абсолютную точность и правильность приводимых сведений. В связи с этим издательство 
не несет ответственности за возможные ошибки, связанные с использованием книги.
©  Груздев А., 2023
©  Оформление, издание, перевод, ДМК Пресс, 2023
ISBN 978-5-93700-212-9


Оглавление
Предисловие ........................................................................................ 9
Проблема с зависимыми данными....................................................................9
Скользящее среднее и экспоненциальное сглаживание................................12
Линейная регрессия..........................................................................................14
ARIMA.................................................................................................................14
ARCH/GARCH......................................................................................................16
Градиентный бустинг........................................................................................17
Нейронные сети.................................................................................................17
ЧАСТЬ 1. БИБЛИОТЕКА FACEBOOK PROPHET...................... 19
1. Математический аппарат Facebook Prophet  
(на основе адаптированного перевода статьи «Forecasting  
at scale» от Шона Дж. Тейлора и Бенджамина Летама,  
входящих в команду разработчиков Facebook Prophet)............ 19
1.1. Введение......................................................................................................19
1.2. Особенности временных рядов в бизнес-задачах....................................21
1.3. Прогнозная модель Prophet.......................................................................23
1.4. Автоматизация оценки качества прогнозов.............................................37
1.5. Библиография.............................................................................................40
2. Установка Prophet.......................................................................... 42
2.1. Установка в macOS......................................................................................42
2.2. Установка в Windows...................................................................................42
3. Построение простых моделей Prophet...................................... 43
3.1. Ежедневные данные...................................................................................43
3.2. Ежемесячные данные.................................................................................49
3.3. Почасовые данные......................................................................................51
3.4. Данные с гэпами.........................................................................................55
4. Работа с сезонностью.................................................................... 61
4.1. Понимание аддитивной и мультипликативной сезонностей.................61
4.2. Моделирование сезонности с помощью порядка Фурье.........................68
4.3. Добавление собственных сезонностей......................................................73
4.4. Добавление условных сезонностей...........................................................77
4.5. Регуляризация сезонности.........................................................................81


4    Оглавление
5. Добавление праздников............................................................... 89
5.1. Добавление национальных праздников...................................................89
5.2. Добавление праздников штатов/провинций............................................95
5.3. Добавление собственных праздников.......................................................96
5.4. Создание многодневных праздников.......................................................98
5.5. Регуляризация влияния праздников.......................................................101
6. Типы роста.....................................................................................106
6.1. Применение линейного роста..................................................................106
6.2. Знакомство с логистической функцией..................................................108
6.3. Получение прогнозов для моделей логистического роста  
с насыщением..................................................................................................110
7. Точки изменения тренда.............................................................124
7.1. Автоматическое определение точек изменения тренда........................124
7.2. Регуляризация точек изменения..............................................................130
7.3. Назначение пользовательских точек изменения...................................135
8. Добавление регрессоров............................................................142
8.1. Добавление бинарных регрессоров ........................................................142
8.3. Интерпретация регрессионных коэффициентов...................................149
9. Выбросы и особые события.......................................................152
9.1. Обработка выбросов, вызывающих сезонные скачки............................152
9.2. Обработка выбросов, являющихся причиной широких  
доверительных интервалов............................................................................157
9.3. Автоматическое обнаружение выбросов................................................159
9.4. Моделирование выбросов как особых событий.....................................166
9.5. Моделирование шоков типа локдаунов во время  
пандемии COVID-19........................................................................................168
10. Доверительные интервалы.....................................................178
10.1. Моделирование неопределенности тренда..........................................178
10.2. Моделирование неопределенности сезонности...................................184
11. Перекрестная проверка...........................................................192
11.1. Перекрестная проверка с автоматически сгенерированными 
пороговыми точками......................................................................................192
11.2. Перекрестная проверка с пользовательскими  
пороговыми точками......................................................................................205
11.3. Обычная оптимизация гиперпараметров по сетке на основе 
перекрестной проверки..................................................................................208
11.4. Байесовская оптимизация гиперпараметров на основе  
перекрестной проверки..................................................................................211
12. Прогнозирование нескольких временных рядов................214


Оглавление    5
ЧАСТЬ 2. БИБЛИОТЕКА ETNA...................................................241
1. Общее знакомство.......................................................................241
1.1. Создание объекта TSDataset ....................................................................248
1.2. Визуализация рядов объекта TSDataset..................................................252
1.3. Получение сводки характеристик по объекту TSDataset ......................253
2. Модель наивного прогноза........................................................255
2.1. Один временной ряд.................................................................................255
2.2. Несколько временных рядов....................................................................260
3. Модель скользящего среднего..................................................264
3.1. Один временной ряд.................................................................................264
3.2. Несколько временных рядов....................................................................266
4. Модель сезонного скользящего среднего...............................268
4.1. Один временной ряд.................................................................................268
4.2. Несколько временных рядов....................................................................270
5. Модель SARIMAX.........................................................................272
5.1. Один временной ряд.................................................................................272
5.2. Несколько временных рядов....................................................................280
6. Модель Хольта–Винтерса (модель тройного 
экспоненциального сглаживания, модель ETS)..........................282
6.1. Один временной ряд.................................................................................282
6.2. Несколько временных рядов....................................................................286
7. Модель Prophet............................................................................288
7.1. Один временной ряд.................................................................................288
7.2. Несколько временных рядов....................................................................293
8. Модель CatBoost..........................................................................300
8.1. Один временной ряд.................................................................................300
8.2. Несколько временных рядов....................................................................318
9. Модель линейной регрессии с регуляризацией  
«эластичная сеть»............................................................................321
9.1. Один временной ряд.................................................................................321
9.2. Несколько временных рядов....................................................................323
10. Объединение процедуры построения модели, оценки 
качества и визуализации прогнозов в одной функции.............326
10.1. Один временной ряд...............................................................................327
10.2. Несколько временных рядов..................................................................328


6    Оглавление
11. Перекрестная проверка нескольких моделей.....................330
11.1. Один временной ряд...............................................................................330
11.2. Несколько временных рядов..................................................................331
12. Ансамбли.....................................................................................336
12.1. Один временной ряд...............................................................................336
12.2. Несколько временных рядов..................................................................337
13. Стекинг.........................................................................................339
14. Создание собственных классов для обучения моделей....340
14.1. Использование функции train_and_evaluate_model() для быстрого 
построения базовых моделей.........................................................................350
14.2. Ансамбли из собственных классов........................................................355
15. Импутация пропусков...............................................................358
16. Работа с трендом и сезонностью............................................368
17. Обработка выбросов.................................................................382
18. Собираем все вместе................................................................388
19. Модели нейронных сетей........................................................402
20. Оптимизация гиперпараметров с помощью Optuna 
от разработчиков.............................................................................410
21. Задача Райффайзен Банка (8 временных рядов)...............415
21.1. Описание задачи.....................................................................................415
21.2. Построение прогнозной модели для горизонта в 90 дней  
(на продажи в конкретном магазине не влияют продажи  
и рекламная активность остальных магазинов)...........................................415
21.3. Оптимизация гиперпараметров модели с горизонтом  
в 90 дней (на продажи в конкретном магазине не влияют продажи 
и рекламная активность остальных магазинов)...........................................432
21.4. Построение прогнозной модели для горизонта в 729 дней  
(на продажи в конкретном магазине не влияют продажи  
и рекламная активность остальных магазинов)...........................................475
21.5. Сравнение прогнозных конвейеров, созданных вручную  
и с помощью ETNA..........................................................................................489
22. Задача Store Sales – Time Series Forecasting  
(1782 временных ряда)..................................................................524
22.1. Описание задачи.....................................................................................524


Оглавление    7
22.2. Добавление экзогенных переменных – регрессоров...........................526
22.3. Добавление экзогенных переменных – регрессоров  
и экзогенных переменных – не регрессоров.................................................534
23. Задача Store Item Demand Forecasting Challenge  
(500 временных рядов)..................................................................539
23.1. Описание задачи.....................................................................................539
23.2. Построение прогнозной модели на основе градиентного 
бустинга LightGBM...........................................................................................539
24. Отбор признаков (на примере задачи Store Item  
Demand Forecasting Challenge).....................................................551
25. Иллюстрация экспресс-решения с помощью функций 
transform_etna_format(), train_and_evaluate_ model(),  
etna_cv_optimize() и класса Auto (на примере задачи NN5)....561
26. Кластеризация временных рядов..........................................575
27. Классификация временных рядов..........................................590
28. Анализ прогнозируемости.......................................................596
29. Создание Streamlit-приложений на основе моделей 
библиотеки ETNA.............................................................................605
ЧАСТЬ 3. БИБЛИОТЕКА LINKEDIN GREYKITE.....................627
1. Математический аппарат LinkedIn Greykite (на основе 
адаптированного перевода статьи «A flexible forecasting  
model for production systems» от R. Hosseini, K. Yang,  
A. Chen, S. Patra, входящих в команду разработчиков  
LinkedIn Greykite).............................................................................627
1.2. Модели условного среднего и волатильности........................................629
1.3. Поиск точек изменения............................................................................636
1.4. Пример применения на данных велопроката (байкшеринга)..............641
1.5. Оценка качества и бенчмаркинг (сравнительный анализ)....................647
1.6. Итоги..........................................................................................................650
1.7. Библиография............................................................................................651
2. Начало работы.............................................................................653
2.1. Установка Greykite.....................................................................................653
2.2. Построение простых моделей Greykite...................................................653


8    Оглавление
ЧАСТЬ 4. БИБЛИОТЕКА SKTIME..............................................676
1. Общее знакомство.......................................................................676
1.2. Разбиение набора на обучающую и тестовую выборки  
с учетом времени............................................................................................677
1.3. Этапы построения прогнозной модели в sktime....................................678
1.4. Создание горизонта модели.....................................................................678
1.5. Построение первых прогнозных моделей..............................................680
1.6. Работа с экзогенными временными рядами..........................................683
1.7. Скользящие обновления модели и прогнозов (скользящее 
развертывание модели)..................................................................................684
1.8. Вероятностное прогнозирование: прогнозные интервалы,  
квантили, дисперсия, прогнозы на основе распределения..........................689
1.9. Перекрестная проверка расширяющимся или скользящим окном......692
1.10. Арсенал встроенных прогнозных моделей, предлагаемых sktime......697
1.11. Прогнозирование нескольких временных рядов.................................702
1.12. Продвинутое моделирование.................................................................704
1.13. Прогнозирование иерархических временных рядов...........................716
1.14. Получение справочной информации о прогнозных моделях.............718
2. Подробный разбор стратегий многошагового 
прогнозирования.............................................................................723
2.1. Прямая стратегия многошагового прогнозирования ...........................725
2.2. Рекурсивная стратегия многошагового прогнозирования....................732
2.3. Гибридная стратегия многошагового прогнозирования.......................740
2.4. Стратегия со множеством выходов.........................................................749
3. Дентрендинг и десезонализация для моделей бустинга.....755
3.1. Временной ряд с трендом и мультипликативной сезонностью  
(набор данных Air Passengers)........................................................................755
3.2. Временной ряд с сильным трендом  
(набор данных WPI).........................................................................................776


Предисловие 
Временной ряд – это набор данных, собранных последовательно во времени. 
Например, представьте любую диаграмму, где ось абсцисс представляет собой 
некоторое измерение времени – что угодно, например количество звезд во 
Вселенной с момента Большого взрыва до сегодняшнего дня или количество 
энергии, высвобождаемой каждую наносекунду ядерной реакции. В  обоих 
случаях данные  представляют собой временные ряды. А как насчет графика 
в приложении «Погода» на вашем телефоне, показывающего ожидаемую температуру на следующие 7 дней? Это тоже график временного ряда.
В этой книге нас в основном будут интересовать события в человеческом 
масштабе – годы, месяцы, дни и часы, и все это будут данные временных рядов. Предсказывание будущих значений составляет суть прогнозирования.
Прогнозирование погоды, очевидно, было важно для людей на протяжении 
тысячелетий, особенно с  момента появления сельского хозяйства. Фактически более 2300 лет назад греческий философ Аристотель написал трактат под 
названием «Метеорология», в котором обсуждались ранние прогнозы погоды. 
Само слово «прогноз» было придумано английским метеорологом в 1850-х годах Робертом Фитцроем, который прославился как капитан корабля «Бигль» 
во время новаторского путешествия Чарльза Дарвина.
Но данные временных рядов не ограничиваются погодой. Медицинская отрасль заимствовала методы анализа временных рядов, когда в 1901 году голландским врачом Виллемом Эйнтховеном была изобретена первая пригодная 
для практического применения электрокардиограмма. ЭКГ, как известно, воспроизводит хорошо известную всем нам картину сердечных сокращений, мы 
часто можем увидеть ее на аппарате рядом с кроватью пациента, наблюдая 
очередную медицинскую драму.
Сегодня одной из самых обсуждаемых областей прогнозирования является 
экономика. Есть целые телеканалы, посвященные анализу тенденций фондового рынка. Правительства используют экономическое прогнозирование для 
согласования политики центрального банка, политики используют экономическое прогнозирование для разработки своих платформ, а лидеры бизнеса 
используют экономическое прогнозирование для принятия решений.
В этой книге мы будем прогнозировать самые разные темы, такие как продажи продуктов в магазинах, уровень углекислого газа в атмосфере, количество 
велосипедистов, участвующих в программе общественного велосипедного проката в Чикаго, рост популяции волков в Йеллоустоне, циклы солнечных пятен, 
местные осадки и даже количество лайков в популярных аккаунтах Instagram.
Проблема с зависимыми данными
Итак, почему прогнозирование временных рядов требует собственного уникального подхода? Со статистической точки зрения вы можете построить то
10    Предисловие 
чечную диаграмму временных рядов с относительно четким трендом и попытаться подогнать линию, используя стандартную регрессию – метод построения прямой линии по данным. Проблема в том, что это нарушает предположение о независимости, которое требует линейная регрессия.
Проиллюстрируем зависимость временных рядов на конкретном примере. 
Предположим, что игрок бросает честную игральную кость. Я говорю вам, что 
он только что выбросил 2, и спрашиваю, каким будет следующее значение. Эти 
данные независимы: предыдущие броски не влияют на будущие броски, поэтому знание того, что предыдущим броском было 2, не дает никакой информации о следующем броске.
Однако в другой ситуации, скажем, я звоню вам из неизвестного места гдето на Земле и прошу угадать температуру в месте моего пребывания. Лучше 
всего было бы угадать среднюю глобальную температуру в этот день. А теперь 
представьте, что я говорю вам, что вчерашняя температура в месте моего пребывания была 90 °F. Это дает вам много информации, потому что вы интуитивно знаете, что вчерашняя температура и сегодняшняя температура каким-то 
образом связаны, эти данные уже не являются независимыми.
Имея данные временных рядов, вы не можете случайным образом перемешать данные, не нарушая тренда и оставаясь в пределах разумной погрешности. Порядок данных имеет значение, они не являются независимыми. Когда 
данные зависимы, как в нашем случае, регрессионная модель может показать 
статистическую значимость чисто случайно (даже если нет истинной корреляции) гораздо чаще, чем предполагает выбранный вами уровень достоверности.
Поскольку высокие значения, как правило, следуют за высокими значениями, а низкие значения, как правило, следуют за низкими значениями, набор 
данных временных рядов с большей вероятностью покажет больше кластеров 
высоких или низких значений, чем было бы в противном случае, а это, в свою 
очередь, может привести к появлению большего количества корреляций, чем 
было бы в противном случае.
Веб-сайт «Ложные корреляции» Тайлера Вигена специализируется на случаях, которые являются примерами, казалось бы, значимых, но совершенно 
нелепых корреляций во временных рядах. Вот один из примеров.
# импортируем необходимые библиотеки
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import random
from scipy.interpolate import make_interp_spline
%config InlineBackend.figure_format = 'retina'
# загружаем данные
df = pd.read_csv('Data/spurious_correlations.csv', sep=';')
# подготавливаем данные
x_new = np.linspace(df['Год'].min(), 
                    df['Год'].max(), 300)
Nic_Cage_smooth = make_interp_spline(
    df['Год'],
    df['Количество фильмов с Николасом Кейджем'],


Похожие

Доступ онлайн
2 599 ₽
В корзину