Выбрать страницу

Начало

Занимаюсь прикладным машинным обучением последние 3 месяца. Работаю с HR данными, продажами иногда с маркетинговыми датасетами. Пишу на R-studio и Python. 

Увидел сообщение от Альфа — Банк «Python хакатон». Приходи говорят, будем тебя кормить, 20 часов будешь кодить.

Отправил заявку, прислали ответ — «Вы прошли первичный отбор». Прислали ссылку на чат в телеграме и задание.

Будут предоставлены данные по двум финансовым инструментам TEA и COFFEE. Вам предстоит их проанализировать и сгенерировать прогнозы значений волатильности по TEA на 100 изменений в данных (на финансовом сленге на 100 «тиков») TEA вперед. При этом, вы можете исследовать изменение качества прогноза волатильности TEA путем добавления в модель данных по финансовому инструменту COFFEE. COFFEE прогнозировать не нужно, инструмент предоставляется, как вспомогательный.

Отлично, мне дадут данные с котировками. Это значит что будут сложности. Особенности данных с биржи, в их подвижности. Данные быстро движутся, обучив модель на предыдущих данных, в следующую секунду вы за бортом.

Команда

Пришел на хакатон. 130 человек математиков, програмистов, финансистов. Уже разделились на команды и рвутся в бой. Объединился с Олегом. Затем к нам присоединился Вадим.  Олег — классный парень, кодит столько же как и я. Вадим — не кодит на питоне, пишет на C+. 

Хакатон

19:00 старт

Получили задание. Смотрю в код и понимаю что у меня код который я не понимаю. Паника первые пару минут. Понимаю, что нет смысла думать об алгоритме, как его писать, какие фичи выбрать пока не понятно как отдать результат. Данных 4 гигабайта для тренировки модели, тест выполняется у вас на локальном сервере. Проверка на удаленном сервере. 

19:40

Олег уходит с хакатона, пожелал нам удачи. 

19:45

Решаю работать своим любимым способом на любой большой задаче:
— Выбрать первый короткий шаг до результата.
— Получить обратную связь от окружающего мира.
— Скорректировать процесс на новых вводных.
— Повторить с первого шага.
Давай, попробуем дойти до этапа, когда сделали решение на сервере и по домам. «Давай» говорит Вадим.

20:45 место команды в рейтинге — 60

Пока на шаге когда мы вообще не понимаем как понять что делать. Сделал шаг — разобрал по шагам код который нам отдали, запустил сервер, отдал тестовые данные. Сработало! Мы на общей доске лидеров со результатом модели которую нам дали как пример. Отлично!

Делю роли с Вадимом. Он пишет на листочке формулы какие сигналы в данных нам могут помочь найти волантильность.

21:00 место команды в рейтинге — 50

Вадим набросал идеи фич,  пишу в код. Когда понял, что нужно создавать обработку еще и на сервере когда отправляем данные — потерял мотивацию. Означает что нужно писать разный код, в двух местах и там он разный.

23:00 место команды в рейтинге — 40

Решили задачу. Процесс заработал. Добавили одну тестовый параметр. Оказались на 40 месте. Ну говорю, давай еще попробуем сделать это и по домам.

03:00 место команды в рейтинге — 27

Домой уйти не получилось. Вадим пишет идеи по новым сигналам. Настраиваю параметры модели. Основной алгоритм lightGBM. Пошла работа на автомате. Строим гипотезу → кодим → проверяем → смотрим результат → пашем дальше.

08:00 место команды в рейтинге — 27

Домой уйти не получилось. Вадим пишет идеи по новым сигналам. Настраиваю параметры модели. Основной алгоритм lightGBM.  Вадим уснул. 

11:00 место команды в рейтинге — 18

Поднял сервер aws на амазоне. Ноутбук перестал справляться. Параллельно считаю на двух машинах. Проблема в том, что алгоритм работает, но он медленный. Но ноутбук один и я один, разорваться не получится. Выбираю вариант оптимизации точности.

14:30 место команды в рейтинге — 11

Финальную модель я засабмитил в 14:29. Точность 63.892, точность модели первого места 64.016. 

Финал 20 место

 В финале мы свое место не сохранили, алгоритм отработал медленно. Это второй критерий. За это снизи баллы. 

Итоги

Я пришел с мыслью — посмотрю на задание и домой. В итоге мы не отступили и работали на уровне ребят из топовых вузов страны, тех кто уже работает с машинным обучением каждый день, математиков и финансистов.

Нужен пример кода или есть вопросы по машинному обучению? Пиши в комментариях или мне на почту nikolayev.art@yandex.ru

 

Share This