Практическое занятие №48 (1И)
Тема: Платформа Kaggle
Цель работы: формирование теоретических и практических навыков работы на языке программирования Python
Оборудование: компьютер с установленной операционной системой Windows, подключение к сети Интернет
Время работы 2 часа
Теоретические сведения
Изначально эта платформа задумывалась чисто как соревновательная, её разрабатывали для проведения соревнований по 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 Learn даёт возможность закрепить свои знания по выбранному направлению и совершенствоваться дальше.
Это можно сделать, выбрав для начала относительно несложный конкурс. Kaggle предлагает пользователям собственную онлайн-среду, где можно писать Python/R-скрипты и работать в Jupyter Notebooks. Работа ведётся в браузере, причём без необходимости устанавливать библиотеки и зависимости. Наработками можно поделиться с сообществом, существует и возможность оценки работ других пользователей. Участники платформы выкладывают самый разнообразный контент — от EDA-задач (Exploratory Data Analysis, он же подробный разбор) с соревнований до простых методов, которые дают возможность оптимизировать собственный код.
Но, конечно, основная задача проекта — это всё же проведение соревнований. Участие в них предоставляет как новичку, так и профессионалу много возможностей, включая как профессиональный рост, так и возможность проверить собственные силы.
Для начала нужно выбрать понравившееся, а затем нажать 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
Ход работы
Задание 1
Пройти регистрацию на платформе Kaggle
Задание 2
пройти начинающий курс