|
|
| Строка 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
| |
| − |
| |
| − | === Контактная информация ===
| |
| − | Алексей Романенко
| |