Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Анализ данных и построение базовой модели для задачи «Титаник» на Kaggle 🚀

Цель проекта

Построить простую, но эффективную модель машинного обучения для предсказания выживаемости пассажиров Титаника.

Краткое описание

В рамках проекта решена классическая задача Kaggle — предсказать, выжил ли пассажир Титаника (Survived: 0 или 1), используя всего два предиктора:

  • Pclass (класс билета: 1, 2, 3);
  • Sex (пол пассажира, закодирован как 0/1).

Обученные модели

Были обучены и сравнены две модели:

  1. Логистическая регрессия (линейная модель);
  2. Random Forest (ансамбль деревьев решений).

Результаты

Лучшая модель выбрана по метрике точности (accuracy) на валидационной выборке. Решение задачи «Titanic: Machine Learning from Disaster» Описание проекта Это комплексное решение задачи предсказания выживаемости пассажиров на «Титанике» (соревнование Kaggle). В отличие от упрощённых подходов с 2–3 признаками, здесь реализован полноценный ML‑пайплайн с предобработкой данных, подбором моделей и ансамблевым обучением.

Ключевые особенности Глубокая предобработка данных

Удаление нерелевантных столбцов (Name, Ticket, Cabin).

Заполнение пропусков:

Embarked — модальным значением.

Fare — медианой.

Age — с помощью KNNImputer (учёт сходства пассажиров).

Кодирование категориальных переменных (Sex, Embarked).

Создание информативных признаков

FamilySize = SibSp + Parch + 1.

IsAlone (индикатор одиночных пассажиров).

AgeGroup (4 категории возраста).

FarePerPerson (стоимость билета на человека).

Масштабирование признаков

Для моделей, чувствительных к масштабу (LogisticRegression, XGBoost), применён StandardScaler.

Подбор гиперпараметров

Для каждой модели проведён GridSearchCV с 5‑кратной кросс‑валидацией.

Оптимизировано: C, penalty (LR); n_estimators, max_depth (RF); learning_rate, max_depth (XGB/CB) и др.

Ансамблевое обучение

Собраны 4 лучшие модели: LogisticRegression, RandomForest, XGBoost, CatBoost.

Реализован стекинг с оптимизацией весов голосования на валидационной выборке.

Использованные модели Logistic Regression

Базовая линейная модель для интерпретации ключевых факторов.

Подбраны C и тип регуляризации (l1/l2`).

Random Forest

Устойчивость к переобучению за счёт ансамбля деревьев.

Оптимизированы глубина и количество деревьев.

XGBoost

Градиентный бустинг с регуляризацией.

Настроены learning_rate, subsample, colsample_bytree.

CatBoost

Бустинг, учитывающий категориальные признаки «из коробки».

Оптимизированы depth, l2_leaf_reg.

Стекинг‑ансамбль

Мягкое голосование (voting='soft') с весами, подобранными на валидации.

Цель: объединить сильные стороны всех моделей.

Результаты Модель CV‑скор (кросс‑валидация) Валидационный скор Logistic Regression 0.8005 0.7933 Random Forest 0.8328 0.8101 XGBoost 0.8398 0.8212 CatBoost 0.8356 0.8156 Стекинг‑ансамбль — 0.8212 Лучший результат: стекинг‑ансамбль (0.8212 на валидации). Примечание: CV‑скор отражает усреднённую производительность на кросс‑валидации, валидационный скор — на отдельной выборке (20% от train).

Почему это лучше базового решения? Учёт контекста данных

Признаки типа FamilySize и AgeGroup отражают реальные факторы выживания (например, семьи и дети имели приоритет).

FarePerPerson корректирует стоимость билета на размер группы.

Снижение переобучения

KNN‑импутация возраста сохраняет структуру данных.

GridSearchCV предотвращает «подгонку» под шум.

Гибкость ансамбля

Стекинг комбинирует линейные (LR) и нелинейные (RF/XGB/CB) зависимости.

Веса голосования подобраны эмпирически, а не заданы вручную.

Воспроизводимость

Все шаги (от обработки пропусков до предсказания) автоматизированы.

Код структурирован для повторного запуска.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages