Привет, Хабр!

Время от времени здесь публикуются статьи с упоминанием Kaggle. Это крупнейшая международная платформа соревнований по Data Science. В организации соревнований участвуют крупные и не очень компании, а многие задачи решают реальные проблемы медицины, ИИ, разработки и т. п. 

Если вы слышали что-то о Kaggle, но ещё не пробовали платформу в работе, то эта статья для вас. В ней относительно коротко рассказывается о том, как всё это работает, в каких соревнованиях можно участвовать и какие вообще возможности предоставляет платформа участникам.

Подробнее о Kaggle

Изначально эта платформа задумывалась чисто как соревновательная, её разрабатывали для проведения соревнований по Data Science. Но с течением времени Kaggle «обросла» новыми возможностями и разделами.

Сейчас это, скорее, своеобразная социальная сеть для дата-сайентистов с возможностью профессионального развития благодаря наличию как мини-курсов по основам машинного обучения, так и соревнований, которые дают возможность проверить результаты этого обучения. Мини-курсы, предлагаемые платформой, обучают самым разным направлениям, включая, например, введение в SQL, введение в машинное обучение, Python, визуализацию данных и другие.

За годы своего существования проект взрастил большое комьюнити, которое позволяет прокачивать скилы, получать новые знания, решать практические задачи. При желании можно смотреть, что и как делают сильные участники комьюнити (в плане профессионализма, конечно, а не физической силы), и проверять собственные знания и навыки.

Платформа помогает и найти работу. Так, на Kaggle есть и рекрутеры, которым нужны сильные дата-сайентисты. Кроме того, специалисты добавляют свои профили в резюме, что считается работодателем дополнительным плюсом при, например, прочих равных возможностях двух кандидатов.

Есть на Kaggle и форум, разделённый на несколько частей, включая:

  • General — всё, что связано с самим Kaggle (анонсы, дискуссии по поводу прошедших соревнований) и жизненными циклами моделей машинного обучения.

  • Getting Started — аналог предыдущего раздела, но для новичков. Рекомендуется для посещения в первую очередь.

  • Product Feedback — отзывы о сайте. Если в процессе работы на Kaggle вы столкнулись с техническими проблемами, вам сюда.

  • Question & Answers — советы по технической составляющей от других дата-сайентистов.

  • Learn — вопросы и дискуссии, которые касаются раздела Courses на сайте.

Как начать работать с платформой

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

Следующий уровень — Contributor — пользователь получает за несколько относительно простых действий:

  • запуск 1 скрипта или notebook

  • 1 сабмит в любое соревнование

  • написание 1 комментария

  • 1 upvote

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

Хорошо, а что после регистрации?

Этот раздел, как, собственно, и вся статья — для новичков. Если вы профессионал, вероятно, и так найдёте, чем заняться. Но, как и говорилось выше, эта статья для начинающих дата-сайентистов, которые хотят присоединиться к комьюнити Kaggle.

Так вот, начать стоит с выбора языка программирования, с которым вы планируете работать. Kaggle Learn даёт возможность закрепить свои знания по выбранному направлению и совершенствоваться дальше.

Например, это можно сделать, выбрав для начала относительно несложный конкурс. Kaggle предлагает пользователям собственную онлайн-среду, где можно писать Python/R-скрипты и работать в Jupyter Notebooks. Работа ведётся в браузере, причём без необходимости устанавливать библиотеки и зависимости. Наработками можно поделиться с сообществом, существует и возможность оценки работ других пользователей. Участники платформы выкладывают самый разнообразный контент — от EDA-задач (Exploratory Data Analysis, он же подробный разбор) с соревнований до простых методов, которые дают возможность оптимизировать собственный код.

Изучение проектов коллег позволяет обнаружить «белые пятна» в собственных знаниях, а также понять, какие хард-скилы нужно подтянуть. Kaggle, таким образом, помогает относительно быстро совершенствоваться.

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

Что насчёт соревнований?

На Kaggle их большое количество. Для начала нужно выбрать понравившееся, а затем нажать Join Competition. Для каждого соревнования указано несколько разделов:

  • Overview — обзор соревнования. Здесь раскрывается проблема, которую нужно решить, а также указывается метрика, которая используется в соревновании.

  • Data — данные, по которым нужно добиваться оптимального показателя метрики.

  • Code — в этом разделе участники соревнования предлагают собственные варианты решения.

  • Discussion — обсуждение соревнований, включая методы решения и нюансы.

  • Leaderboard — список участников с лучшими показателями. Если соревнование предполагает вознаграждение, то указываются и эти данные.

  • Rules — правила соревнования.

Что касается соревнований, то в качестве примера укажем два, которые привлекают обычно больше всего новичков. Они входят в категории Getting Started и Playground, не предлагая денежного вознаграждения:

  • Titanic. Участникам предлагается датасет «Титаника», который содержит данные пассажиров корабля. Нужно построить модель, которая даёт возможность предсказать, остался определённый пассажир в живых или нет.

  • House prices. А здесь нужно предсказать стоимость дома на основе большого количества признаков, включая местоположение, площадь, количество комнат и их типы и т. п.

Более продвинутые соревнования предполагают денежное вознаграждение. Например:

Google Universal Image Embedding. Это конкурс для профи, в нём предлагались денежные призы, причём немаленькие:

  • 1st Place — $15 000

  • 2nd Place — $10 000

  • 3rd Place — $8 000

  • 4th Place — $7 000

  • 5th Place — $5 000

  • 6th Place — $5 000

SIIM-ISIC Melanoma Classification (соревнование проводилось 3 года назад). Определение рака кожи по форме родинок. Речь идёт о меланоме — одном из наиболее распространённых видов рака. Здесь тоже предлагались немаленькие призы:

  • 1st Place — $10 000

  • 2nd Place — $6 000

  • 3rd Place — $4 000

Есть и соревнования с гораздо большим денежным призом. Например, Hacking the Kidney, где за лучшее решение предлагалось $60 000.

Соревнование KAGGLE по определению риска дефолта заёмщика (проводилось 2 года назад). Оно подробно описывалось на Хабре, так что читатель может получить полное представление о механизме проведения и требованиях к участникам.

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