Prophet – это библиотека для создания Моделей (Model) Машинного обучении (Machine Learning) на базе sklearn. Ее характерная особенность – это использование временных рядов для предсказания целевой переменной. Тренировочный Датасет (Dataset) подготавливается таким образом, чтобы входными данными был временной ряд и исторические значения целевой переменной:
Давайте попробуем предсказать стоимость акции компании "Магнит" (тикер $MGNT.ME). Для этого экспортируем csv-файл со вкладки "Исторические данные" (Historical Data) на finance.yahoo.com со всей историей наблюдений. Для этого в настройке "Временной интервал" (Time Period) установим 'Max'.
Создадим ноутбук на colab.research.google.com и импортируем для начала необходимые библиотеки. Мы используем классический набор из NumPy, Pandas и Matplotlib для подготовки данных и их визуализации. Pylab позволит нам тонко настроить внешний вид конечного графика, а MinMaxScaler – произвести Нормализацию (Normalization) данных. Класс add_changepoints_to_plot – это специальная надстройка, позволяющая добавить так называемые точки разворота:
Зададим графику "опрятный" внешний вид:
Препроцессинг
Прежде чем отправлять модель обучаться, мы произведем препроцессинг и слегка преобразуем датасет. Для простоты воспроизведения кода загрузим датасет на Dropbox и разрешим его скачивание, задав параметр 'dl=1' в конце ссылки.
Наши данные выглядят следующим образом:
Прогнозирование
Prophet работает с двумя столбцами, один из которых – временная метка, потому вторым мы выберем "Стоимость акции на момент открытия биржи" (Open):
Произведем переиндексацию согласно требованиям этой библиотеки Facebook:
Скормим модели тренировочные данные и запросим предсказание на 2020-2021 гг. включительно:
Визуализируем результат с помощью Matplotlib:
Скачать ноутбук, исполняемый без дополнительной настройки на момент написания статьи, можно по ссылке.
Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте наши курсы по Машинному обучению на Udemy.