|
|
(не показаны 2 промежуточные версии этого же участника) |
Строка 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
| |
− |
| |
− | === Контактная информация ===
| |
− | TBA
| |