Код
#статьи

Kaggle для начинающего дата-сайентиста: соревноваться нельзя учиться

Мало нам питона и матана — есть ещё, оказывается, и какой-то Каггл. Разбираемся, что это и зачем нужно

скриншот из игры until down / supermassive games

Kaggle — популярная платформа для соревнований по Data Science от Google. Пользователи (люди и организации) могут публиковать на ней свои наборы данных, создавать и исследовать модели машинного обучения, соревноваться друг с другом.

Типичная схема Kaggle-соревнования: организатор конкурса (как правило, крупная компания) публикует свои данные и описание проблемы, сроки, критерии правильного решения и приз, который получит победитель. А участники пробуют применить к данным разные методы, модели и алгоритмы, чтобы решить проблему.

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

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

В Kaggle всё очень непросто:

  • Сложные задачи — от создания карты клеток человеческой почки до выявления болезней кассавы. Начинающему победить будет как минимум нелегко.
  • Серьёзные призы — до ста тысяч долларов. Значит, будет много участников, а вероятность победы снизится.
  • Среди участников — топовые команды с научными степенями и десятками лет опыта в Data Science.

Кажется, шансов у новичка — ноль. Так зачем же соревноваться тому, кто только начал изучать науку о данных?

К тому же очищенные, подготовленные и хорошо документированные Kaggle-датасеты не имеют ничего общего с задачами и данными, над которыми ежедневно работают дата-сайентисты.

Чем полезен Kaggle

Хотя вам вряд ли достанется приз, а задачи сильно отличаются от «промышленного» Data Science, соревнования — это отличный инструмент обучения. Многие вообще считают Kaggle лучшим способом изучить науку о данных.

Чтобы обучение проходило эффективно, нужно понимать особенности платформы:

  • Каждое Kaggle-соревнование подготовлено и упаковано. А значит, не нужно разворачивать свой проект с нуля, собирать и очищать данные. Сосредоточьтесь на поиске лучшего решения и исследовании алгоритмов.
  • Практика — это всегда хорошо. Спасибо, Кэп, но решать задачи по Data Science— действительно лучший способ изучить Data Science :) Так что не переживайте насчёт тех ста тысяч долларов, которые у вас из-под носа увели парни с научными степенями, а просто прокачивайте свои навыки в решении интересных задач. Расти будете как Илья Муромец — не по дням, а по часам.
  • Обсуждения, комментарии и интервью участников. Под каждое соревнование создаётся топик на форуме — там участники обсуждают условия и варианты решения, а после окончания победители всегда дают интервью. Отличная возможность изучить стиль мышления опытных дата-сайентистов и развить насмотренность.

На Kaggle вы исследуете продвинутые алгоритмы, фреймворки, библиотеки и прокачаете soft skills — упорство, настойчивость и умение работать в команде. Наконец, попробуете решить важные для всего человечества проблемы. Сплошные плюсы.

OK, Kaggle! Как начать?

Выберите язык программирования. Самые популярные языки в Data Science и Kaggle-сообществе — Python и R. Если вы начинаете с нуля, то выберите Python, это универсальный язык, он поможет в решении самых разных задач. Для начала можно прочитать нашу статью про Python-минимум для дата-сайентиста.

Изучите основы Data Analysis. А конкретно — так называемый исследовательский (разведочный) анализ данных. Пригодятся навыки загружать и визуализировать данные, свободно в них ориентироваться. Все необходимые инструменты есть в Python-библиотеках Pandas и Seaborn. А потренироваться в преобразовании данных из таблицы Excel в формат датафреймов Pandas можно с помощью нашей статьи.

Попробуйте обучить свою первую модель на несложном датасете. Например, модель Random Forest из библиотеки scikit-learn — у нас есть об этом хорошая статья. Так вы познакомитесь с основными инструментами машинного обучения, привыкнете делить датасет на обучающую и тестовую части, узнаете про кросс-валидацию и метрики работы модели.

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

Раздел Getting Started с соревнованиями для начинающих

Не бойтесь трудностей и стремитесь к знаниям. Пора приступать к настоящим соревнованиям — они потребуют существенно больше времени и усилий. Поэтому выбирайте с умом: в выполнении задания должны быть задействованы интересные и нужные вам методы и технологии.

Призы — это здорово, но гораздо ценнее и надёжнее те знания и навыки, которые двинут вперёд вашу карьеру дата-сайентиста.

Сверяйтесь со своими планами. Современный Data Science практически необъятен, поэтому выбирайте состязания, релевантные вашим устремлениям. Например, если вы планируете стать специалистом по компьютерному зрению, то соревнования по обработке естественного языка скорее отвлекут вас, чем принесут пользу.

Kaggle и «настоящий» Data Science

Посмотрим, чем соревнования отличаются от ежедневных задач дата-сайентиста.

Соревнования KaggleРеальный Data Science
ЗадачиВсегда трудныеМогут быть лёгкими
РешенияДолжны быть новымиМогут быть известными
ЭффективностьТолько относительнаяМожет быть абсолютной
ДанныеПодготовленныеПридётся наводить порядок и чистить

Задачи. Компании выкладывают на Kaggle самые сложные и запутанные проблемы, которые не решить за один день. В реальном Data Science они могут быть простыми, да и бизнес диктует требование выбирать более лёгкие задачи с быстрым результатом.

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

На практике в Data Science для большинства задач (исследовательский анализ, очистка данных, A/B-тестирование, классические алгоритмы) уже есть проверенные решения и фреймворки. Каждый раз выдумывать что-то сложное и новое не требуется.

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

В Kaggle главное — выполнить формальные требования и обойти всех по заданному критерию. А в реальном Data Science важнее себестоимость и бизнес-результат.

Данные. Датасеты на соревнованиях Kaggle очищены и готовы для работы: удобный формат, ясное описание, логичная структура. Именно на подготовку уходит до 80% рабочего времени обычного дата-сайентиста.

Советы опытных кагглеров

Вот семь советов для тех, кто хочет получить максимум пользы от соревнований на Kaggle:

Совет 1: достигайте целей постепенно.

В каждый момент времени следующая цель должна быть одновременно и достаточно трудной, и достижимой. Например:

  • Сделать модель, которая лучше базового решения.
  • Попасть в топ-50% в одном соревновании.
  • Попасть в топ-25% в одном соревновании.
  • Попасть в топ-25% в трёх соревнованиях.
  • Попасть в топ-10% в одном соревновании.
  • И наконец — выиграть уже эти 100 тысяч долларов!

Такая стратегия позволит измерить свой прогресс и сохранить высокую мотивацию.

Совет 2: исследуйте самые популярные решения.

Одна из важных фишек Kaggle — участники могут публиковать краткое описание своего решения, так называемое kernel («ядро»). Изучение чужих решений может натолкнуть на новые идеи.

Раздел с кратким описанием решений и сортировка решений по критериям

Совет 3: спрашивайте участников на форумах.

Не бойтесь задавать «глупые» вопросы. В конце концов, ничего страшного не случится. Максимум, что вам грозит, — тишина в ответ. Но, скорее всего, вы получите советы и поддержку опытных дата-сайентистов.

Совет 4: работайте сольно — так эффективнее прокачивать ключевые навыки.

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

Совет 5: работайте в команде, чтобы расширить свои возможности.

Работа в команде — отличный способ учиться у опытных дата-сайентистов. Найти «сообщников» можно в чатах, комьюнити и пабликах, посвящённых Data Science, среди одногруппников по курсам или прямо на форумах Kaggle. Нетворкинг — это сила.

А когда вы отточите общие навыки машинного обучения, будет важно поучиться у экспертов в конкретной отрасли — это увеличит вашу ценность.

Совет 6: помните, что Kaggle — это только этап.

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

Совет 7: не переживайте из-за низкого рейтинга.

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

Заключение

Обучение на практике — один из лучших методов освоить любую отрасль знаний. А Kaggle — это в первую очередь прекрасная возможность попрактиковаться в решении задач, и лишь во вторую — денежные призы.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована