|
|
| Строка 1: |
Строка 1: |
| {{Карточка_командного_проекта
| |
| |name=Прогнозирование спроса по новым товарам
| |
| |company=SAS
| |
| |semester=Осень 2017
| |
| |course=3
| |
| |number_of_students=2-3
| |
| |categorize=yes
| |
| }}
| |
|
| |
|
| === Что это за проект? ===
| |
| Одним из распространённой методикой построения алгоритмов машинного обучения является построение композиций тривиальных композиций. Наиболее известными примерами композиции простых алгоритмов классификации являются 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
| |
|
| |
| === Контактная информация ===
| |
| Алексей Романенко
| |