Kaggle — практическое изучение Big Data. Что это за платформа, и как она работает
Привет, Хабр!
Время от времени здесь публикуются статьи с упоминанием 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, расскажите о нём в комментариях.