Агрегирование композиций прогнозирования временных рядов (командный проект)
Компания | SAS |
Учебный семестр | Осень 2017 |
Учебный курс | 3-й курс |
Максимальное количество студентов, выбравших проект: 2-3 | |
Содержание
|
Что это за проект?
Одним из распространённой методикой построения алгоритмов машинного обучения является построение композиций тривиальных композиций. Наиболее известными примерами композиции простых алгоритмов классификации являются Boosting (AdaBoost, Gradient Boosting, Xgboost), Bagging (Random Forest). Построение композиции алгоритмов прогнозирования временных рядов обладает то особенностью, что композиции должны быть простыми (линейная сложность по длине временного ряда), быстро адаптироваться под изменение структуры временного ряда.
Одним из современных подходов для построения онлайн-композиций является агрегирующий алгоритм. Студентам предлагается его реализовать и научиться использовать на практике.
Требования к разработке готовой системы
Функциональные требования
В качестве финального продукта должен быть описан алгоритм, которому на вход подаётся
1) временной ряд (набор временных рядов);
2) горизонт прогнозирования;
3) набор базовых алгоритмов;
4) набор параметров композиции или набор значений параметров, из которых нужно выбрать оптимальный;
5) метод обучения параметров композиции.
На выходе алгоритма должен быть
1) построен прогноз по всем временным рядам;
2) описан финальный набор параметров композиции.
Технические требования
Код должен быть написан на языке SAS, все структуры данных, с которыми работают алгоритмы, все базовые алгоритмы являются реализованными в SAS процедурами (PROC ESM, PROC ARIMA и др.).
В качестве финального теста решения будет предложено спрогнозировать набор реальных временных рядов и сравнить результат с прогнозами других композиций.
Почему данное решение необходимо?
Композиции алгоритмов прогнозирования ВР позволяют значительно увеличить точность прогнозов и уменьшить человеческий ресурс для построение адекватного прогноза.
Композиции, построенные на основе агрегирующего алгоритма обладают наилучшей обобщающей способностью по сравнению с классическими (давно известными) подходами (см. статью https://rd.springer.com/chapter/10.1007/978-3-319-17091-6_9).
Чему научатся студенты? Что самое интересное в проекте?
В ходе проекта будет предложение разобраться с математикой, которая лежит за агрегирующим алгоритмом. Для быстрого ознакомления с агрегирующим алгоритмом студентам будет предложено реализовать прототип на языках Python/R, а затем перенести его на промышленное решение, написанное на языке SAS.
Студенты смогут научиться основным техникам прогнозирования временных рядов в Python/R, так и ознакомиться с подходом построения прогнозов по временным рядам промышленных системах, работающих на SAS.
Наиболее интересным этапом будет работа с реальными данными, когда реализованная студентами композиция будет соревноваться в точности с другими композициями и базовыми алгоритмами. Финально студенты увидят, что только агрегирующий алгоритм сможет «обойти по точности» все базовые алгоритмы.
Организация работы (Как студенты будут работать в команде?)
Команда из 2-3 человек. По ходу реализации системы работы будут распараллелены, чтобы каждый получил опыт и в анализе данных, и в разработке и в тестировании системы.
Встречи проходят 1 раз в 2 недели.
Компоненты (Из каких частей состоит проект?)
1. Изучение агрегирующего алгоритма и написание прототипа на Python/R
- 1. Теория по прогнозированию временных рядов
- 2. Теория по агрегирующему алгоритму, изучение литературы
- 3. Реализация прототипа на Python\R
2. Изучение методов прогнозирования в SAS, написание прогнозов
- 1. Изучение языка SAS
- 2. Изучение процедур SAS Forecast Server
- 3. Перенесение прототипа на язык SAS
3. Проведение экспериментов на реальных данных
- 1. Сравнение реализованной композиции и базовых алгоритмов
- 2. Сравнение реализованной композиции и других известных композиций
Какие будут использоваться технологии?
Для реализации проекта студентам потребуется освоить ПО SAS. Будут использоваться следующие продукты:
1) Python/R – для написания прототипа
2) SAS BASE и SAS Enterprise Guide – для анализа данных и разработки алгоритмов.
3) SAS FAW и FS – прогнозирование базового спроса, на который в последствии накладывается влияние промо.
Какие начальные требования?
Базовые знания по математическому анализу, теории вероятности, математической статистике (регрессионному анализу).
Навыки анализа данных.
Знание какого-либо из языков программирования Python или R.
Темы вводных занятий
1. Прогнозирование временных рядов, специфика задачи прогнозирования временных рядов в Retail.
2. Композиции алгоритмов прогнозирования.
3. Анализ временных рядов в Python/R.
4. Прогнозирование временных рядов в SAS.
Критерии оценки
8-10 – разработан прототип алгоритма на Python/R, разработан алгоритм в SAS, проведены эксперименты на реальных данных, сделаны выводы по результатам экспериментов.
6-7 – разработан прототип алгоритма на Python/R, разработан алгоритм в SAS.
4-5 – разработан прототип алгоритма на Python/R, разработан алгоритм в SAS.
Похожие проекты
TBA
Контактная информация
Алексей Романенко