Как решать задачи Kaggle: пошаговый гайд от freeCodeCamp.org

freeCodeCamp.org 128 тыс. 1 ч 35 мин 3 мин 30.09.2024
Главное

В мире анализа данных Kaggle считается эталоном для проверки навыков машинного обучения. Это платформа, где теоретические знания сталкиваются с реальными сырыми данными. Рохан Кумар, автор канала SMDS, в рамках курса на freeCodeCamp.org представил подробное руководство по решению трех классических задач Kaggle на Python, пройдя путь от первичного анализа данных (EDA) до отправки финального файла на сервер.

🏠 Прогнозирование цен на жилье: продвинутая регрессия 1:03

Первый проект посвящен задаче регрессии — предсказанию стоимости недвижимости (Sale Price) на основе 79 объяснительных переменных . Кумар подчеркивает, что секрет успеха в таких соревнованиях кроется не столько в выборе алгоритма, сколько в тщательном проектировании признаков (Feature Engineering).

Стратегия объединения данных

Одной из ключевых рекомендаций автора является объединение тренировочного (train) и тестового (test) наборов данных в единый домен перед началом обработки . Это необходимо для того, чтобы манипуляции с данными (например, заполнение пропусков или кодирование) применялись единообразно.

Обработка пропущенных значений (NaN)

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

  1. Тепловая карта (Heatmap): использование библиотеки Seaborn для выявления колонок с критическим количеством пропусков .
  2. Удаление: колонки, в которых более 1100 значений отсутствуют (например, информация о бассейнах или аллеях), удаляются, так как они не несут статистической значимости .
  3. Заполнение категорий: пропуски в строковых данных заполняются значением 'None', которое в дальнейшем становится отдельной категорией при One-Hot Encoding .
  4. Числовые данные: для заполнения используются мода (наиболее частое значение) или среднее арифметическое, в зависимости от контекста переменной .

Выбор модели и обучение

Для решения задачи были протестированы три алгоритма:

При итоговой отправке файла (output.csv) важно отключать индекс (index=False), чтобы формат соответствовал требованиям Kaggle . Результат автора на лидерборде составил 1458-е место, что является отличным стартом для базовой модели .

🛸 Spaceship Titanic: задача классификации 27:31

Вторая задача переносит нас в 2912 год. Космический корабль «Титаник» столкнулся с пространственной аномалией, и часть пассажиров была «транспортирована» в другое измерение. Задача: предсказать, кто именно исчез.

Алгоритм KNN Imputer

В отличие от первого проекта, где пропуски заполнялись вручную, здесь Кумар применяет более продвинутый инструмент — KNN Imputer .

Инженерный подход к признакам

Автор разделяет колонку Cabin (формат Deck/Number/Side) на три независимых столбца с помощью регулярных выражений . Далее проводится анализ корреляции:

Для обучения использовался ансамбль из пяти моделей, включая LightGBM, который автор выделил как наиболее эффективный для данной задачи, достигнув точности около 80% .

🚢 Классический Titanic: основы выживания 58:35

Финальная часть курса посвящена самому известному соревнованию для новичков — гибели оригинального «Титаника».

Очистка «шумных» данных

Рохан Кумар утверждает, что такие столбцы, как Name (имя) и Ticket (номер билета), чаще всего бесполезны для модели, так как содержат слишком много уникальных значений и вносят «шум» . Однако он предлагает извлечь пользу из колонки Cabin, разделив её на букву палубы и номер каюты .

Создание синтетических признаков

Чтобы помочь модели, автор создает новые переменные на стыке существующих:

Спор о 100% точности

Обсуждая лидерборд Titanic, Кумар выражает скепсис по поводу участников с точностью 100% . По его мнению, достичь идеального результата в этой задаче без «подглядывания» в реальные списки погибших невозможно, так как в данных всегда присутствует элемент случайности. Реалистичным хорошим результатом считается точность в диапазоне 79–82% .

💬 Цитаты

«Дело всегда в манипулировании данными, а не в поиске идеального алгоритма.»

Рохан Кумар 27:15

«Я считаю, что точность 100% на лидерборде Титаника подделана — это просто невозможно.»

👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
EDA
Исследовательский анализ данных для поиска закономерностей и аномалий.
One-Hot Encoding
Преобразование категориальных данных в числовые векторы из 0 и 1.
KNN Imputer
Алгоритм заполнения пропусков на основе значений ближайших похожих объектов.
XGBoost
Популярная библиотека экстремального градиентного бустинга на деревьях решений.
📊 Цифры
⚖️ Другая сторона
Технологии и IT Kaggle Machine Learning Python XGBoost Data Science