1 / 38

Погружение в Machine Learning. Участвуем в Kaggle соревнованиях!

Погружение в Machine Learning. Участвуем в Kaggle соревнованиях!. Январь 2019. О спикере. Январь 2019. Алексей Перминов. Р уководитель группы по разработке, MERA.

cyeager
Download Presentation

Погружение в Machine Learning. Участвуем в Kaggle соревнованиях!

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Погружение в Machine Learning. Участвуем в Kaggle соревнованиях! Январь 2019

  2. О спикере Январь 2019 Алексей Перминов Руководитель группы по разработке, MERA Инженер-программист, руководитель группы. 9 лет в компании (в сфере телекоммуникаций). Опыт изучения машинного обучения около полугода.

  3. О чём этот доклад • Что такое Kaggle • Что с ним делать и зачем • С чем мы столкнулись • Что делали • Что получили

  4. Что такое Kaggle Kaggle Возможности: • Участвовать в соревнованиях • Находить и публиковать наборы данных • Исследовать и строить разнообразные ML модели – “Kernels” • Обучаться • Общаться с сообществом

  5. Зачем Kaggle соревнования • Для разработчиков: • Опыт • Репутация • Иногда деньги • Иногда предложение работы • Для компаний/организаторов: • Новые решения и подходы для бизнес задачи от огромного числа людей • Помощь в исследованиях • Поиск сотрудников

  6. Процесс соревнования Выбрать соревнование Создать или присоединиться к команде Делать Data Science (Magic) Получить результат (Submission) Завершить участие? Нет Конец соревнования Да Profit

  7. Какие соревнования бывают • Коммерческие: • Featured • Humpback Whale Identification • Home Credit Default Risk • Research • LANL Earthquake Prediction • Freesound General-Purpose Audio Tagging Challenge • Некоммерческие: • Getting started • Digit Recognizer • Titanic: Machine Learning from Disaster • Playground • New York City Taxi Trip Duration • Dogs vs. Cats Redux: Kernels Edition • Рекрутинговые: • Airbnb New User Bookings • Facebook Recruiting IV: Human or Robot?

  8. Какие соревнования мы выбирали и почему • Соревнование укладывается в наш тайм фрейм (примерно 2 месяца) • Соревнование с табличными данными • Размер выгружаемых данных не больше 1 Гб • Как можно шире охватить DS подходы и методы  

  9. PUBG Finish Placement Prediction  • PlayerUnknown'sBattleGrounds (PUBG): • Релиз в конце 2017 • Battle Royale • До 100 игроков • Миллионы активных игроков • Задача: • Train dataset – 45К матчей • Test dataset – 15K матчей • Статистика завершённых матчей по игрокам • Предсказать распределение мест команд в матче • Особенности: • Места распределяются по командам

  10. Two Sigma: Using News to Predict Stock Movements • TwoSigma: • Хедж-фонд, штаб-квартира в Нью Йорке • Крупный спонсор Kaggle • Управляемые активы: 51 миллиард USD (2017 г.) • Задача: • Стоимость активов с 2007 по 2017 год • Новости про эти активы за то же время • Предсказать, вырастет или упадёт актив в цене через 10 дней • Особенности: • Time-series • Тестовые данные выдаются порционно • Новостные данные уже предобработаны

  11. С чего начать? • Смотрим, что уже сделали другие (открытые ядра) • Читаем обсуждения на форуме • Выбираем интересные идеи • Придумываем свои гипотезы 

  12. Анализ данных • Открытые “Exploratory Data Analysis”(EDA) ядра • Смысловой анализ исходных данных • Зависимости • Распределения • Аномалии: • выкинутые данные • странные значения • возможные причиныотклонений

  13. PUBG: Анализ данных – смысловойанализ • Статистика игрока: • kills • heals • damageDealt • vehicleDestoys • Целевая переменная: • winPlacePercϵ[0;1] • walkDistance • rankPoints • weaponsAcquired • etc. n = 5 0.0 0.75 0.25 0.5 1.0 • Статистика матча: • matchDuration • matchType • numGroups

  14. PUBG: Анализ данных – зависимости

  15. PUBG: Анализ данных – зависимости(2)

  16. PUBG: Анализ данных – зависимости(3) • swimDistance / winPlacePerc • rideDistance / winPlacePerc • walkDistance / winPlacePerc

  17. PUBG: Анализ данных – зависимости(4)

  18. PUBG: Анализ данных – распределения

  19. PUBG: Анализ данных – аномалии

  20. PUBG: Предобработка данных • Дополнительные фичина основе существующих • Агрегация данных (переходим от игроков к командам) • Новые фичи из агрегированных данных • Уменьшение объёма занимаемой памяти

  21. PUBG: Агрегация данных Игрок 1 Игрок 2 Команда 1 Игрок 3 … … Игрок N Игрок N+1 Команда N Игрок N+2

  22. PUBG: Агрегация данных Игрок 1 Игрок 2 Команда 1 Игрок 3 … … … Игрок N Игрок N+1 Команда N Игрок N+2

  23. PUBG: Агрегация данных Игрок 1 Игрок 2 Команда 1 Игрок 3 … … … Игрок N Игрок N+1 Команда N Игрок N+2 min max mean

  24. PUBG: Агрегация данных Игрок 1 rank Игрок 2 Команда 1 Игрок 3 … … … Игрок N Игрок N+1 Команда N Игрок N+2 min max mean

  25. PUBG: Агрегация данных Игрок 1 rank Игрок 2 Команда 1 Игрок 3 … … … Игрок N Игрок N+1 Команда N Игрок N+2 min Модель max mean

  26. PUBG: Модели • Регрессионная • Ранжирующая • Ансамблинескольких моделей • Библиотеки: • CatBoost • LightGBM • XGBoost Картинка мясо

  27. PUBG: Постобработка и результат • Сортировка и ручное ранжирование на основе выданных моделью предсказаний • Обработка граничных значений • Обратный переход от команд к игрокам • Результат: • Score: MAE ~ 0.0205 • Top Leaderboard score:MAE ~ 0.0139 • Место: 225/1453 (top 20%)

  28. Two Sigma соревнование и его отличия Прогноз: Данные: Курсы активов на рынке выше рынка Новости про эти активы среднее по рынку ниже рынка 10 дней Целевая переменная: yϵ [-1; 1] («уверенность» в возрастании или падении)

  29. Two Sigma соревнование и его отличия (2) Интерфейс 2sigma Получение тренировочных данных вызывается только один раз

  30. Two Sigma соревнование и его отличия (2) Целевая переменная Интерфейс 2sigma news_train market_train Получение тренировочных данных Обучение по данным с 2007 по 2017 года вызывается только один раз

  31. Two Sigma соревнование и его отличия (2) Целевая переменная Интерфейс 2sigma news_train market_train Получение тренировочных данных Обучение по данным с 2007 по 2017 года вызывается только один раз Предобработка данных Тренировка модели (например, LightGBM) Обученная модель

  32. Two Sigma соревнование и его отличия (2) Целевая переменная Интерфейс 2sigma news_train market_train Получение тренировочных данных Обучение по данным с 2007 по 2017 года вызывается только один раз Предобработка данных Тренировка модели (например, LightGBM) Получение данных для проверки модели news_obs market_obs Обученная модель вызывается только поочерёдно Цикл валидации – предсказание следующего значения по данным за 1 день Сохранение результатов предсказания

  33. Two Sigma соревнование и его отличия (2) Целевая переменная Интерфейс 2sigma news_train market_train Получение тренировочных данных Обучение по данным с 2007 по 2017 года вызывается только один раз Предобработка данных Тренировка модели (например, LightGBM) Получение данных для проверки модели news_obs market_obs Обученная модель вызывается только поочерёдно Цикл валидации – предсказание следующего значения по данным за 1 день Сохранение результатов предсказания predictions

  34. Two Sigma: Исходные данные

  35. Two Sigma: Из чего состояло наше решение • Основные элементы решения: • Учёт разрывов в данных по рынку • Модель с постоянной статистикой • Переход к «скользящей» статистике • Многое другое: • предобработка данных • сгенерированные фичи • независимая схема валидации • настройка гиперпараметровмодели • …

  36. Two Sigma: выводы LightGBM Feature Importance • Место: 1161/2902 (top 40%) • Данные по новостям не дали значительной прибавки к точности предсказания • Учёт статистики активов даёт существенное увеличение точности предсказания Активы Новости

  37. Подведение итогов • Что удалось вынести, что получили: • Понимание общего ML пайплайна • Опыт работы с временными рядами • Опыт работы с Pandas • Опыт визуализации имеющихся данных (matplotlib, seaborn, plotly) • Опыт работы с популярными библиотеками градиентного бустинга (CatBoost, LightGBM, XGBoost) • Что можно сделать лучше: • Работа над ошибками, когда будут опубликованы топ решения • Следует участвовать дальше? • Однозначно да!

  38. Вопросы! Хорошая статья для погружения в тему: Как правильно «фармить» Kagglehttps://habr.com/ru/company/ods/blog/426227/

More Related