/MTS-ML-CUP

https://ods.ai/competitions/mtsmlcup/

Primary LanguageJupyter Notebook

MTS-ML-CUP

Задача соревнования.
Определение пола и возраста владельца HTTP cookie по истории активности пользователя в интернете на основе синтетических данных. Подробнее по ссылке: https://ods.ai/competitions/mtsmlcup

Подход к решению.

  • Данные очень большие: 10 частей , весом 140 МБ каждая в паркете. Памяти бесплатного колаба не хватало(лимит 12гиг) даже 2 куска обработаь вместе . Все действия направлены на то, чтобы пройти под лимитом в 12 гиг по тонкой грани.
  • Все фичи отдельно генерятся для каждого из 10 куска начальных данных в большом цикле. В цикле формируются фичи, дата сеты сшиваются и сохраняются на гугл диск для каждой из 10 частей. Причем раздельно для age и male, сразу выделяются таргеты от признаков. Опять же все из за памяти.
  • сохраненные датасеты для каждого таргета сшиваются в один в цикле и затем подаются на ML .
  • Урлы посещенные пользователем, превращены в фичи. Т е получилась огромная матрица посещения сайтов для всех юзеров.
  • Памяти для ML на всех данных хватало примерно на 2500-2600 урлов в фичах для финального обучения на всей трайн выборке.
  • Отсев урлов основан на :сортировка всех урлов по кол-ву запросов и выбор топ [0,2500],[2500-5000] , затем с помощью фич имп. были выбраны самые лучшие. Так нельсколько раз , брались лучшие из лучших и в различных вариациях, рандом фичи и тп.
  • модель использовалась catboost дефолт. Использовалась GPU, когда Гуггл давал использовать на ненадолго. Без GPU обучение на мультиклас(age) длилось 4+часа.

Полученные результаты
Полученный max_score = 1.6539, место 110.
Первое место скор 1.7852 у супер профи.
На момент проведения соревнования , я еще не изучил нейронки , блендинг моделей , да и даже catboost и его применение осваливал тут. Использовал базовые навыки ML для получения результатов.
Для меня задача минимум было "поразбираться". Максимум выдать решение. В итоге получилось все лучше ,чем ожидалось.

  • получил отличный скор(место). по сути я обучающийся ДС half-джун вошел в топ 110 ДС спецов!
  • придумал и реализовал свое решение как побороть биг дату.
  • невероятно прокачал скилы по сравнению с тем что было у меня. Никто в группе из 270 человек ,где я обучался, так не получили скор/не стали разбираться.Хотя лекоторы рекомендовали.
  • пообщался с крутыми ДС в чате, посомтрел на митапе топ3 презентации решений.

Добавил текст с описанием и решнием после окончания ЯП и подготовки Git для портфоолио. Код особо не причесываю, времени нет и бесмысленно. Пусть останется памятником труда и упорства:)