kaggle что это такое

📊 Kaggle за 30 минут: практическое руководство для начинающих

kaggle что это такое

Как начать?

Прежде чем начать покорение Kaggle, необходимо зарегистрироваться на сайте. Переходим по ссылке и нажимаем кнопку Register. У вас будет два варианта: зарегистрироваться через аккаунт Google или по адресу электронной почты. Получаем подтверждение на почту, логинимся – готово, теперь вы в Kaggle сообществе.

kaggle что это такое

Следующий уровень – Участник (Contributor). Достичь его можно несколькими простыми действиями:

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

kaggle что это такое

Что есть на Kaggle?

kaggle что это такое

kaggle что это такое

Ниже панели поиска находятся теги, по которым вы можете отобрать «нотбуки», которые вас интересуют.

Стрелочка под названием – это тот самый Upvote, по количеству которых определяется релевантность. Рекомендую выбрать интересующий вас notebook, лайкнуть его, прокомментировать и нажать кнопку Copy and Edit. Таким образом вы сохраните его у себя в профиле (аналог форка на GitHub), сможете запустить ячейки внутри него и получить описанную выше плашку Kaggle Contributor.

Как принять участие в соревновании Kaggle?

Найдите приемлемое для вас соревнование. Потом нажмите Join Competition и согласитесь с условиями.

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

Чтобы составить решение прямо на сайте, вам нужно:

Теперь ваше решение появилось в турнирной таблице.

Самые простые соревнования для начинающих.

Почему стоит участвовать в соревнованиях Kaggle?

Если вы еще не пробовали Kaggle, самое время начать. Соревнования помогут вам научиться решать реальные задачи из области Data Science и выбрать одно из ее многочисленных направлений. В режиме непрерывной практики за неделю вы узнаете больше, чем за 3 месяца изучения теории. Более того, медали с соревнований будут плюсом при трудоустройстве: работодатели обязательно обратят внимание на ваш практический опыт. В следующей статье мы разберемся с одним из самых базовых соревнований Kaggle – House Prices.

Если вы только начинаете путь в профессию и еще не определились со специализацией, подумайте о применении методов науки о данных в медицинской отрасли: сейчас это одно из самых перспективных направлений. Образовательная онлайн-платформа GeekBrains проводит набор на факультет Data Science в медицине, на котором студенты научатся с нуля решать задачи в области медицины. Обучение длится 18 месяцев, плюс 6 месяцев занимает практика по медицинской специализации. По итогам получите 15 проектов в портфолио и гарантию трудоустройства.

Источник

Как начать работу в Kaggle: руководство для новичков в Data Science

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

kaggle что это такое

Как вам уже, наверное, известно, Kaggle – это платформа для исследователей разных уровней, где они могут опробовать свои модели анализа данных на серьезных и актуальных задачах. Суть такого ресурса – не только в возможности получить неплохой денежный приз в случае, если именно ваша модель окажется лучшей, но и в том (а, это, пожалуй, гораздо важнее), чтобы набраться опыта и стать специалистом в области анализа данных и машинного обучения. Ведь самый важный вопрос, зачастую стоящий перед такого рода специалистами – где найти реальные задачи? Здесь их достаточно.

Мы попробуем поучаствовать в обучающем соревновании, не предусматривающем каких-либо поощрений, кроме опыта.

Для этого мною была выбрана задача распознавания рукописных цифр из выборки MNIST. Немного сведений из вики. MNIST (Mixed National Institute of Standards and Technology database) является основной базой при тестировании систем распознавания образов, а также широко используемой для обучения и тестирования алгоритмов машинного обучения. Она была создана перегруппировкой образов из оригинальной базы NIST, которая являлась достаточно сложной для распознавания. Кроме этого, были выполнены определенные преобразования (образы были нормализованы и сглажены для получения градаций серого цвета).

База MNIST состоит из 60000 образов для обучения и 10000 образов для тестирования. Написано большое количество статей, посвященных задаче распознавания MNIST, например (в данном случае авторы использовали иерархическую систему из сверточных нейронных сетей).

Оригинальная выборка представлена на сайте.

На Kaggle представлена полная выборка MNIST, организованная немного по-другому. Здесь обучающая выборка включает в себя 42000 образов, а выборка тестирования – 28000. Тем не менее, по содержанию они эквивалентны. Каждый образ MNIST представлен картинкой 28Х28 пикселей с 256 градациями серого цвета. Пример нескольких неоднозначных в идентификации цифр представлен на картинке ниже.

kaggle что это такое

Для создания своей модели нейронной сети для распознавания цифр воспользуемся интерпретатором Рython c установленным пакетом nolearn 0.4, а также numpy и scipy (для удовлетворения всех зависимостей).

Здесь мне очень помогла вводная статья, написанная Adrian Rosebrock в своем блоге. В ней даются вводные сведения о нейронных сетях глубокого доверия и их обучении, хотя сам автор при тестировании использует обычный многослойный персептрон архитектуры 784-300-10 без какого-либо предобучения. Так поступим и мы. Кстати, весьма подробно и на примере разных классических выборок рассматривается процесс использования пакета на страничке nolearn.

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

Для начала создадим свой двухслойный персептрон архитектуры 784-300-10:

Здесь требуются некоторые пояснения. Первый параметр конструктора нейронной сети – список, содержащий количество входов и нейронов в каждом слое, learn_rates – скорость обучения, learn_rate_decays – множитель, задающий изменение скорости обучения после каждой эпохи, epochs – количество эпох обучения, verbose – флаг вывода подробного отчета процесса обучения.

После выполнения этой инструкции, необходимая модель будет создана и нам останется только загрузить данные. Kaggle предоставляет нам два файла: train.csv и test.csv, содержащие соответственно выборки для обучения и тестирования. Структура файлов простая – в первой строке содержится заголовок, далее следуют данные. Для train.csv каждая строка с данными предваряется соответствующей меткой – цифрой от 0 до 9, определяющей образ. В test.csv метка отсутствует.

Следующим этапом загрузим данные в массивы, воспользовавшись пакетом для работы с csv-файлами. Не забываем произвести нормировку:

После этого обучаем нашу нейронную сеть на подготовленных данных:

Сам процесс занимает некоторое время, определяемое количеством эпох обучения, заданным при конструировании нейронной сети. На каждой эпохе обучения на экран будут выводиться (при заданном параметре verbose) значения loss и err (значение функции потерь и ошибка).

kaggle что это такое

После обучения все, что нам остается сделать – загрузить данные тестирования и сохранить предсказания для каждого образа из выборки тестирования в файл с расширением csv:

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

kaggle что это такое

Готово! 176 место из более чем 500 участников. Для начала вполне неплохо. Теперь полученный результат можно попытаться улучшить, например, применив собственные разработки или модифицируя и подбирая параметры в nolearn. Благо времени достаточно: соревнование по MNIST’у неоднократно продлевали и теперь оно будет проходить до 31.12.2015. Удачи и спасибо, что прочитали эту статью.

Источник

Что такое Kaggle и зачем он дата-сайентисту?

kaggle что это такое

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

Что такое Kaggle?

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

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

Зачем Kaggle начинающему дата-сайентисту?

Поможет освоить основные принципы Machine Learning и Data Science

В разделе Learn есть больше десятка полезных курсов: введение в SQL, введение в машинное обучение, Python, визуализация данных и другие. Курсы не объяснят математику, стоящую за алгоритмами машинного обучения, но научат принципам, необходимым для анализа данных. Это поможет сэкономить время, которое обычно тратится на пассивное изучение материала.

Быстро погрузит в практику

Вместо того чтобы искать задачи по изученной теории, можно начать работать над проектом и уже в процессе «добирать» необходимые знания. Так обучение Machine Learning и Data Science проходит увлекательнее и приносит больше пользы.

Поможет решать актуальные проблемы на реальных данных

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

С чего начать?

Шаг 1: получите базовые знания

Выберите язык программирования — например, Python или R — и изучить его основы. Затем перейти к Kaggle Learn, чтобы закрепить знания по выбранному языку программирования, начать погружение в машинное обучение и познакомиться с методами визуализации данных.

Шаг 2: найти интересный проект или набор данных

Для начала можно выбрать несложный конкурс и испытать себя. На этом этапе начинающим дата-сайентистам помогут Kernels («ядра») — онлайн-среда для программирования, которая работает на серверах Kaggle. В ней можно писать Python/R-скрипты и работать в Jupyter Notebooks.

Kernels бесплатны и отлично подходят для тестирования. Можно скопировать или изменить уже существующее «ядро» другого пользователя, а также поделиться своим с сообществом.

Шаг 3: изучить открытые «ядра»

Анализ открытых «ядер» поможет сравнить свой код с кодом других пользователей и понять, какие разделы Machine Learning и Data Science следует изучить тщательнее. Это ускорит погружение в тему и сделает процесс более осознанным.

Шаг 4: опубликовать собственное «ядро»

Создаqnt собственный Kernel — даже если у вас еще нет уверенности в своих силах. «Ядро» лучше сделать публичным: так можно заработать больше очков на платформе и получить обратную связь.

Шаг 5: изучите новую информацию и снова опубликуйте «ядро»

Следуйте принципу «Learn, leap and repeat» (научись, сделай большой шаг вперед и начни снова): усовершенствуйте свои навыки и опять вернитесь к шагу 4.

Шаг 6: совершенствуйте анализ, изучая Kernels

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

Data Scientist c нуля

Освойте самую востребованную профессию 2021 года! Только реальные знание и навыки, поддержка менторов и помощь в трудоустройстве. Дополнительная скидка 5% по промокоду BLOG.

Как Kaggle поможет опытному дата-сайентисту?

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

Для прохождения курса вам не потребуется специальных знаний, выходящих за рамки школьной программы. Вы получите достаточную математическую подготовку и опыт программирования на Python, чтобы решать задачи машинного обучения. Дополнительная скидка 5% по промокоду BLOG.

Источник

Знакомство с Kaggle: изучаем науку о данных на практике

Авторизуйтесь

Знакомство с Kaggle: изучаем науку о данных на практике

kaggle что это такое

Рассказывает Уильям Коерсен, эксперт по аналитическим данным

Можно найти множество обучающих ресурсов по анализу данных — от Datacamp до Udacity, все они позволяют изучить науку о данных. Но если вы из тех, кто любит учиться через практику, то Kaggle, возможно, окажется лучшей платформой, чтобы улучшить ваши навыки с помощью практических проектов в области научных исследований.

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

kaggle что это такое

Главные аспекты Kaggle

В целом Kaggle — отличное место для обучения: либо через более традиционные учебные задания, либо через соревнования со страницы Competitions. Чтобы узнать о новейшем методе машинного обучения, можно прочитать книгу или посмотреть на Kaggle, как люди используют этот метод на практике. Второе мне кажется гораздо более приятным и эффективным. Более того, сообщество чрезвычайно общительное и всегда готово ответить на вопросы или дать обратную связь по проекту.

В этой статье мы разберёмся, как начать работу с конкурсом машинного обучения в Kaggle: Home Credit Default Risk problem. Это довольно простое соревнование с набором данных разумного размера (а так бывает не всегда), что означает, что мы сможем полностью выполнить задание на ядре от Kaggle. Это значительно снижает барьер для входа, потому что вам не нужно беспокоиться о каком-либо программном обеспечении на вашем компьютере и загружать данные. Если у вас есть учётная запись Kaggle и доступ к интернету, вы сможете подключиться к ядру и запустить код.

Я планирую провести весь конкурс на Kaggle, и ядро ​​(Python Jupyter Notebook) для этой статьи можно посмотреть здесь. Чтобы получить от этой статьи максимум, скопируйте ядро, создав учётную запись Kaggle, а затем нажмите голубую кнопку с надписью «Fork Notebook». Это откроет место для редактирования и работы в среде ядра.

Описание соревнования

Home Credit Default Risk competition — это стандартная контролируемая задача машинного обучения, которая с помощью данных по кредитной истории прогнозирует, погасит ли заёмщик кредит. Во время обучения мы предоставляем нашу модель со свойствами — переменными, описывающими заявку на получение кредита, и ярлыком — 0, если кредит был погашен, и 1, если кредит не был погашен — и модель учится сопоставлять свойства и ярлыки. Затем во время тестирования мы подаём в модель свойства новой серии заявлений на кредит и просим её предсказать ярлык.

Home Credit, являющийся организатором соревнования, — это финансовый провайдер, который специализируется на финансовых услугах. Для финансового бизнеса предсказать, погасит ли заёмщик кредит, жизненно важно. Home Credit запустил этот конкурс в надежде, что сообщество Kaggle разработает эффективный алгоритм для решения этой задачи. Этот конкурс следует общей идее большинства соревнований в Kaggle: у компании есть данные и проблема, которую необходимо решить, и вместо того, чтобы нанять в штат экспертов по аналитическим данным для создания модели, они предлагают относительно скромный приз, чтобы подвигнуть на решение проблемы весь мир. Сообщество, состоящее из тысяч квалифицированных экспертов по аналитическим данным (Kagglers), работает над проблемой практически бесплатно, чтобы найти наилучшее решение.

Среда Kaggle для соревнований

На картинке ниже можно увидеть, что находится на домашней странице соревнований.

kaggle что это такое

Краткое описание вкладок:

Почему важно учиться у других?

Соревнования Kaggle по машинному обучению, хоть они и называются так, стоит называть скорее «совместными проектами», потому что главной целью является не столько выиграть, сколько попрактиковаться и поучиться у друга-эксперта. Как только вы осознаете, что здесь главное — не превзойти других, а улучшить свои навыки, вы получите от соревнований максимальную пользу. Когда вы регистрируетесь на Kaggle, вы получаете не только доступ ко всем ресурсам, но и возможность стать частью сообщества экспертов по аналитическим данным.

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

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

Работа в первом Notebook

Теперь, когда вы получили базовое представление о том, как работает Kaggle, и вдохновились тем, сколько преимуществ можно получить от соревнований, настало время начать. Здесь я кратко рассказываю о Python Jupyter Notebook, который я собрал для Home Credit Default Risk problem. Но чтобы получить представление, лучше всего будет скопировать его и запустить самостоятельно (вам не придётся что-то скачивать или настраивать, так что очень рекомендую это сделать).

Когда вы откроете notebook в ядре, вы увидите следующее:

kaggle что это такое

Окружения ядра для Notebook

Перед вами стандартный Jupyter Notebook с немного отличающимся внешним видом. Вы можете писать код на Python или обычный текст (используя синтаксис Markdown) точно так же, как и в Jupyter, а потом запускать код на облачном сервере Kaggle. Однако ядра Kaggle имеют некоторые отличительные особенности, недоступные в Jupyter Notebook. Нажмите стрелку влево в правом верхнем углу, которая откроет три вкладки (если вы в режиме полноэкранного просмотра, эти вкладки уже могут быть открыты).

kaggle что это такое

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

Код для доступа к ним:

kaggle что это такое

Вкладка Settings позволяет нам контролировать различные технические аспекты ядра. Мы можем добавить GPU, изменить видимость или установить пакет Python, которого ещё нет в окружении.

Последняя вкладка Versions позволяет посмотреть предыдущие коммиты. Мы можем смотреть изменения в коде, просматривать лог-файлы запуска, видеть notebook, сгенерированный при запуске, и загружать выходные данные прогона.

kaggle что это такое

Чтобы запустить весь notebook и записать новую версию, нужно нажать голубую кнопку Commit & Run в правом верхнем углу ядра. Это действие выполнит весь код и сохранит любые файлы, которые будут созданы во время запуска. Закоммитив notebook, мы сможем получить доступ к любым прогнозам, сделанным нашей моделью, и подать их на оценивание.

Вводный Notebook Outline

Первый notebook предназначен для ознакомления с проблемой. Нужно начинать с основ: убедиться, что понятны используемые данные и задание. Для этой проблемы есть один главный тренировочный набор данных с уже расставленными метками и 6 дополнительных файлов. В первом notebook мы используем только главный файл, который принесёт достойный результат, но дальнейшая работа подразумевает, что мы будем использовать все файлы с данными, чтобы быть конкурентоспособными.

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

Как только мы разобрались с данными и проблемой, мы можем начать структурировать задачи машинного обучения. Это подразумевает работу с категориальными переменными (через one-hot encoding), заполнение пропущенных значений (imputation) и масштабирование переменных в диапазоне. Мы можем проводить анализ исследовательских данных, например поиск закономерности с ярлыком, и отрисовывать такие закономерности.

kaggle что это такое

Корреляция шаблона переменных

Позже мы сможем использовать эти закономерности для моделирования решений, например, какие переменные использовать (смотрите notebook для реализации).

kaggle что это такое

kaggle что это такое

Распределение возрастов, окрашенных ярлыком (слева) и ставки дефолта по возрастной группе (справа)

Разумеется никакой анализ исследовательских данных не будет полным без моего любимого Pairs Plot.

kaggle что это такое

Pair Plot of Features (красный означает кредиты, которые не были погашены в kde и разбросаны)

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

Хотя интуитивно кажется, что нужно использовать точность для задачи бинарной классификации, это будет плохим решением, потому что мы имеем дело с проблемой несбалансированного класса. Вместо точности, решения оцениваются с помощью ROC AUC (Receiver Operating Characteristic curve Area Under the Curve). Я позволю вам самостоятельно разобраться в этом или почитать объяснение в notebook. Просто знайте, что чем выше результат, тем лучше. Чтобы вести подсчёты с помощью ROC AUC, нам нужно делать прогнозы в терминах вероятностей, а не бинарные — 0 или 1. ROC показывает истинную положительную оценку по сравнению с ложно положительной оценкой, как функцию порога, согласно которому мы классифицируем экземпляр как положительный.

Обычно нам нравится делать наивное базовое предсказание, но в этом случае мы уже знаем, что случайные догадки по задаче будут равны 0,5 по ROC AUC. Поэтому для нашей модели мы будем использовать несколько более сложный метод — логистическую регрессию. Это популярный простой алгоритм для задач бинарной классификации, который поможет установить низкий порог для прохождения будущими моделями.

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

kaggle что это такое

С этой вкладки мы можем загрузить получившиеся файлы на компьютер, а потом выгрузить их для участия в соревновании. В этом notebook мы сделали четыре разные модели. Их оценки не приближают нас к вершине таблицы лидеров, но оставляют место для множества улучшений в будущем! Также мы получили представление о производительности, которую мы можем ожидать, используя всего лишь один источник с данными.

Неудивительно, что экстраординарный Gradient Boosting Machine (использовалась библиотека LightGBM) отработал лучше всего. Эта модель побеждает практически в каждом структурированном Kaggle соревновании (где данные представлены в табличном формате) и нам, вероятно, придётся использовать какую-то форму этой модели, если мы хотим достойно конкурировать с другими участниками.

Вывод

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

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

Остаётся много работы, но, к счастью, нам больше не нужно делать её в одиночку. Я надеюсь, эта статья и notebook kernel придали вам уверенности, чтобы начать участвовать в соревнованиях Kaggle или заняться любым научным проектом.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *