🥇 Осваиваем Python и машинное обучение с помощью Kaggle
Kaggle – это среда ML и сообщество специалистов по Data Science, предлагающее соревнования, датасеты, облачные инструменты и доступ к базе знаний.
Перевод публикуется с сокращениями, автор оригинальной статьи Davide Camera.
Соревнования Kaggle улучшили состояние и культуру техники машинного обучения в нескольких областях. Несмотря на то, что Kaggle является бесплатным сервисом, он помогает решить множество задач:
- поиск надежных источников клиентских и маркетинговых данных;
- обмен идеями и примерами кода;
- налаживание эффективного сотрудничества с коллегами по проекту;
- применение машинного обучения и ИИ в проектах маркетинговой аналитики.
Соревнования
Существует пять категорий конкурса Kaggle:
- Getting Started – для новых пользователей. За участие не выдаются призы или очки.
- Playground – награды варьируются от рейтинга до небольших денежных призов.
- Featured competitions – полномасштабные задачи машинного обучения, создающие сложные проблемы прогнозирования, часто коммерческой направленности. Такие состязания привлекают серьезные команды и предлагают крупные призовые фонды.
- Research competitions – задачи с экспериментальной «ноткой», более творческие, чем Featured. Здесь обычно не предлагают призы, очки или рейтинг.
- Recruitment competitions – соревнование в создании ML-моделей для задач крупных корпораций. Часто призом является собеседование и трудоустройство.
В большинстве испытаний пользователи Kaggle могут получить доступ к полным наборам данных в начале конкурса, загрузить их, построить модели на основе локальных данных или Kaggle Notebooks, а также создать и загрузить файлы прогнозов. Некоторые соревнования делятся на этапы, а некоторые являются конкурсами кодеров, которые должны быть отправлены в Kaggle Notebooks.
Комьюнити и обучение
Kaggle регулярно проводит форумы (feedback, Q&A, datasets) и двухчасовые микрокурсы (Python, ML, визуализация данных, Pandas, feature engineering, deep learning, SQL и т.д).
Участие в сообществе полезно для изучения Data Science и получения доступа к стандартным датасетам, однако это не замена платных облачных сервисов обработки данных или проведения анализа.
Датасеты и релевантные данные
Kaggle содержит 50 тысяч наборов данных, связанных по большей части с маркетингом, e-commerce и продажами. Аналитики могут получить к ним доступ и проанализировать в своих браузерах.
Информация представлена в форматах: CSV, JSON, SQLite, ZIP, 7z, есть даже размещенные на серверах Google многотерабайтные наборы BigQuery-наборы.
Существует несколько способов поиска наборов данных Kaggle:
- На домашней странице Kaggle вы найдете список “горячих” наборов и наборов данных, загруженных людьми, за которыми вы следите.
- На странице Kaggle datasets есть упорядоченный по “самым горячим” список наборов данных.
- На странице с тегами, например: https://www.kaggle.com/tags/covid-19.
- Пользователь может создавать публичные и частные датасеты на Kaggle с локальной машины, URL-адресов, репозиториев GitHub и данных Kaggle Notebook.
Легче и быть не может:
- Подключитесь к kaggle.com;
- найдите раздел «datasets» в верхней части страницы;
- введите ключевое слово для поиска;
- сканируйте результаты, просматривайте оценки качества набора данных, оценки заинтересованности и краткие описания;
- выберите подходящий набор данных.
Теперь разберемся, как найти релевантные маркетинговые анализы.
- После выбора набора данных обратите внимание, что с ним связано несколько независимых Notebooks (они рассматриваются далее более подробно).
- Каждый Notebook представляет собой анализ, включающий описание, код и выходные данные: визуализации и таблицы данных со сводной статистикой.
- Выберите тот, который имеет наибольшее количество голосов и одобрение сообщества.
- Если анализ представляет большой интерес, можно его форкнуть в Notebook, создав копию кода и данных.
- Запустите сценарий или внесите изменения, создав свою версию. Интересным вариантом является замена исходных авторских данных собственным набором перед выполнением кода.
Notebooks
Kaggle поддерживает три типа блокнотов (notebooks):
- скрипты;
- скрипты RMarkdown;
- блокноты Jupyter.
Скрипты – файлы, которые выполняют весь код последовательно. Блокноты можно писать на языке программирования R или на Python. R-кодеры и представляющие код для соревнований люди часто используют скрипты, а программисты Python и специалисты, занимающиеся исследовательским анализом данных, предпочитают Jupyter.
Notebooks могут иметь бесплатные ускорители GPU (Nvidia Tesla P100) или TPU и использовать сервисы Google Cloud Platform, но существуют квоты – 30 часов GPU и TPU в неделю.
Если нет потребности ускорить глубокое обучение, GPU/TPU не нужны. Использование сервисов Google Cloud Platform может повлечь начисление платы, если превышен лимит бесплатного уровня.
Блокноты работают в ядрах, являющихся контейнерами Docker и можно сохранять версии блокнотов по мере их разработки. Сотрудничайте в блокноте с другими пользователями, в зависимости от того, является ли ноутбук общедоступным или частным.
Облачная интеграция: доступ к Google Cloud tech
Работа в среде Kaggle познакомит вас с облачными рабочими процессами, предоставит доступ к новым инструментам и возможность приобретения навыков, жизненно необходимых для маркетологов и цифровых аналитиков.
Это стало возможным благодаря интеграции Kaggle с BigQuery, BigQuery ML и Google Data Studio. Существует также интеграция с Google Sheets и новейшая – с Google AutoML. Есть шанс, что появится больше интеграций, поскольку Kaggle теперь является частью Google Cloud.
Public API
Помимо создания и запуска интерактивных блокнотов можно взаимодействовать с Kaggle через командную строку с локального компьютера, который вызывает публичный API Kaggle. Для установки Kaggle CLI потребуется менеджер пакетов pip из Python 3, а также аутентификация машины с помощью загруженного с сайта Kaggle токена.
Kaggle CLI и API могут взаимодействовать в соревнованиях, датасетах и блокнотах (ядрах). Код API открыт и размещен на GitHub, если появились вопросы по работе с ним – прочтите содержащий полную документацию файл README.
Machine Learning и AI
AutoML может снизить барьер для входа в разработку приложений машинного обучения в маркетинге. Это позволяет маркетологам с общим пониманием процесса машинного обучения и без знания программирования безопасно использовать передовые модели ИИ.
AutoML, который теперь доступен на Kaggle, может сэкономить огромное количество времени, потраченного на разработку и тестирование модели вручную. Это не будет (пока) полностью автоматическое “ИИ по нажатию кнопки” – маркетолог должен понимать основы процесса.
Начните же!
Изучите наборы данных и способы их анализа сообществом Kaggle. Попробуйте использовать набор данных Google Analytics и блокноты анализа для прогнозирования доходов или набор данных оптимизации конверсий с анализом ROI для маркетинговых кампаний Facebook.
Заключение
Kaggle не охватывает все аспекты рабочего процесса обработки данных и аналитики. Это не инструмент для разработки систем производственного уровня или хранения/управления всем кодом и артефактами. Тем не менее, это практический инструмент для совместной работы, с помощью которого маркетологи могут получить доступ к соответствующим наборам данных, изучить их и получить идеи для ускоренного анализа.
Дополнительные материалы по теме
- Jupyter Notebook: галерея лучших блокнотов по ML и Data Science
- Мультиклассовая классификация текстов с MLlib и PySpark
- Хотите знать, как работает Deep Learning? Вот быстрый гайд
- Новый подход в Deep Learning: популяционное обучение нейросетей
- JupyterLab и Jupyter Notebook — мощные инструменты Data Science
- Покажем, как использовать docker-compose для Python и Jupyter