Найти в Дзене
YA.RU AI

Где связь между деревом и кораблем?

@PyYaroslav Краткое текстовое описание: Дерево решений (DecisionTreeClassifier) — это один из базовых и понятных алгоритмов машинного обучения, который строит модель в виде древовидной структуры, принимая решения на каждом узле в зависимости от значений признаков. В данном исследовании была поставлена задача проанализировать данные о пассажирах "Титаника" и построить модель, предсказывающую, выжил пассажир или нет. Были загружены данные из файла tita_train.csv, содержащие следующие ключевые признаки: При первичном осмотре были выявлены пропуски: Для обучения исключили признаки: Основной набор признаков (X) включал: Pclass, Sex, Age, SibSp, Parch, Fare, Embarked. Целевая переменная (y) — признак Survived (0 — погиб, 1 — выжил). Попытка прямого обучения классификатора привела к ошибке: алгоритм не умеет работать с текстовыми значениями (например, Sex = "male"). Для решения применили One Hot Encoding — преобразование категориальных признаков в бинарные столбцы (0/1). Использован алгоритм:
Оглавление

DecisionTreeClassifier

@PyYaroslav

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

Анализ данных Titanic с помощью дерева решений

Введение

Дерево решений (DecisionTreeClassifier) — это один из базовых и понятных алгоритмов машинного обучения, который строит модель в виде древовидной структуры, принимая решения на каждом узле в зависимости от значений признаков. В данном исследовании была поставлена задача проанализировать данные о пассажирах "Титаника" и построить модель, предсказывающую, выжил пассажир или нет.

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

Были загружены данные из файла tita_train.csv, содержащие следующие ключевые признаки:

  • Pclass — класс каюты (1, 2 или 3)
  • Sex — пол
  • Age — возраст
  • SibSp — количество братьев/сестёр или супругов на борту
  • Parch — количество родителей/детей на борту
  • Fare — стоимость билета
  • Embarked — порт посадки (C, Q, S)
  • А также идентификаторы и текстовые поля, которые в модель не включались.

При первичном осмотре были выявлены пропуски:

  • Возраст — 177 пропусков
  • Кабина — 687 пропусков
  • Порт посадки — 2 пропуска

Предобработка данных

Для обучения исключили признаки:

  • PassengerId — идентификатор
  • Name — текстовое поле
  • Ticket — номер билета
  • Cabin — большое количество пропусков

Основной набор признаков (X) включал: Pclass, Sex, Age, SibSp, Parch, Fare, Embarked.

Целевая переменная (y) — признак Survived (0 — погиб, 1 — выжил).

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

Попытка прямого обучения классификатора привела к ошибке: алгоритм не умеет работать с текстовыми значениями (например, Sex = "male"). Для решения применили One Hot Encoding — преобразование категориальных признаков в бинарные столбцы (0/1).

Построение модели

Использован алгоритм:

tree.DecisionTreeClassifier(criterion='entropy')

Выбор критерия entropy был обусловлен стремлением получить более точное разбиение данных, так как энтропийный критерий учитывает информационный выигрыш.

После кодирования категориальных переменных и устранения пропусков модель была успешно обучена.

Результаты и анализ важности признаков

Визуализация дерева показала, что ключевыми признаками для выживания являются:

  1. Sex — женщины выживали чаще
  2. Pclass — пассажиры первого класса имели преимущество
  3. Fare — высокая стоимость билета коррелировала с выживаемостью
  4. Age — дети имели больше шансов на спасение

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

Выводы

  1. Пол — решающий фактор: женщины выживали значительно чаще мужчин.
  2. Класс билета и стоимость тесно связаны с шансами на спасение.
  3. Возраст также влияет: дети имели приоритет при спасении.
  4. Пропущенные значения требуют аккуратной обработки — при большом числе пропусков в признаке (как в Cabin) лучше исключить его.
  5. Модель дерева решений, хоть и проста, даёт хорошую интерпретируемость и наглядность факторов, влияющих на исход.

ДА, также я разобрал что такое кросс-валидайция и уже поделился этим тут https://t.me/yaru_AI

-2