Анализ данных о пассажирах «Титаника» остается актуальной темой в области машинного обучения и исторической аналитики. Катастрофа 1912 года является не только трагическим событием, но и уникальным источником данных, позволяющим изучать влияние социально-демографических факторов на выживаемость в экстремальных условиях. Использование современных методов, таких как нейронные сети, позволяет строить точные модели для предсказания исхода, что важно для понимания исторических закономерностей и разработки алгоритмов классификации.
В данной работе анализируется набор данных, содержащий информацию о пассажирах: класс, пол, возраст, наличие родственников, порт посадки и другие признаки. Цель – построить модель, предсказывающую, выжил ли пассажир (бинарная классификация). Для этого используется нейронная сеть, реализованная на Keras, с предварительной обработкой данных: заполнением пропусков, кодированием категориальных переменных и нормализацией числовых признаков. Алгоритм включает следующие шаги:

Рисунок 1. Динамика точности модели в процессе обучения
- импортируем необходимые библиотеки: TensorFlow/Keras, Pandas, NumPy, Matplotlib и Seaborn;
- загружаем обучающий и тестовый наборы данных, монтируем Google Drive для доступа к файлам;
- преобразуем категориальные признаки (пол, порт посадки, класс) в числовой формат с помощью one-hot кодирования;
- создаем новый признак “more than one relative” на основе количества родственников на борту;
- визуализируем пропущенные значения с помощью тепловой карты Seaborn;
- заполняем пропуски в числовых столбцах средними значениями;
- выделяем признаки и целевую переменную, преобразуем данные в массивы NumPy;
- стандартизируем данные, вычитая среднее и деля на стандартное отклонение;
- строим модель нейронной сети с тремя полносвязными слоями и Dropout для регуляризации;
- компилируем модель с оптимизатором Adam, функцией потерь binary_crossentropy и метрикой accuracy;
- обучаем модель на 10 эпохах с валидационной выборкой 10%;
-
визуализируем динамику точности на обучающей и валидационной выборках;
Этот алгоритм является типовым для задач классификации и демонстрирует ключевые этапы работы с нейронными сетями в Keras.
Ниже приведен фрагмент кода:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, BatchNormalization
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# Загружаем данные для обучения
train = pd.read_csv(PATH + ‘train.csv’).replace(‘male’, 1).replace(‘female’, 0)
train = pd.concat([train, pd.get_dummies(train.Embarked, prefix="Emb")], axis=1)
train = pd.concat([train, pd.get_dummies(train.Pclass, prefix="Pclass")], axis=1)
train['more than one relative'] = train.Parch + train.SibSp > 1
train = train.replace(True, 1).replace(False, 0)
# Загружаем данные для тестирования
test = pd.read_csv(PATH + ‘test.csv’).replace(‘male’, 1).replace(‘female’, 0)
test = pd.concat([test, pd.get_dummies(test.Embarked, prefix="Emb")], axis=1)
test = pd.concat([test, pd.get_dummies(test.Pclass, prefix="Pclass")], axis=1)
test['more than one relative'] = test.Parch + test.SibSp > 1
test = test.replace(True, 1).replace(False, 0)
Процесс работы показан на рисунке 2 (изображение сгенерировано нейросетью):

Рисунок 2. Архитектура построения нейронной сети
Заключение
Анализ данных о пассажирах «Титаника» с использованием нейронных сетей демонстрирует высокую эффективность машинного обучения для решения задач бинарной классификации. Модель позволяет выявить ключевые факторы, влиявшие на выживаемость, такие как класс билета, пол и возраст. Однако важно учитывать исторический контекст и этические аспекты работы с данными. Полученные результаты могут быть использованы в образовательных целях, а также для разработки более сложных моделей анализа выживаемости. Исследование подчеркивает ценность междисциплинарного подхода, сочетающего историю и data science.
Библиографический список
-
Джеймс, Г. Введение в статистическое обучение с примерами на R : учебное пособие / Г. Джеймс, Д. Уиттен, Т. Хасти, Р. Тибширани ; пер. с англ. А. В. Груздева. – Москва : ДМК Пресс, 2021. – 436 с. – ISBN 978-5-97060-913-9.
-
Маккинни, У. Python и анализ данных : пер. с англ. / У. Маккинни. – 2-е изд. – Москва : ДМК Пресс, 2020. – 482 с. – ISBN 978-5-97060-841-5.
-
Чоллет, Ф. Глубокое обучение на Python : практическое руководство / Ф. Чоллет ; пер. с англ. А. А. Слинкина. – 2-е изд. – Санкт-Петербург : Питер, 2022. – 400 с. – ISBN 978-5-4461-1692-8.
