ВЫЖИТЬ НА «ТИТАНИКЕ»: АНАЛИЗ ФАКТОРОВ, ВЛИЯВШИХ НА ШАНСЫ ПАССАЖИРОВ, С ИСПОЛЬЗОВАНИЕМ НЕЙРОННЫХ СЕТЕЙ

Бадрисламов Денис Игоревич
Уфимский университет науки и технологий, Нефтекамский филиал
студент 2 курса, Факультет экономико-математический

Аннотация
Статья посвящена анализу данных о пассажирах «Титаника» с применением нейронной сети для предсказания выживаемости. Рассматривается актуальность темы в контексте исторических исследований и задач бинарной классификации в машинном обучении. Предлагается алгоритм обработки данных, включая заполнение пропусков, кодирование категориальных признаков и стандартизацию числовых переменных. Описывается построение и обучение модели с использованием Keras, а также визуализация результатов. Обсуждаются этические аспекты использования исторических данных и важность интерпретируемости модели. В заключении подчеркивается практическая ценность подобных исследований для анализа социально-демографических факторов в чрезвычайных ситуациях.

Ключевые слова: , , , , , ,


Рубрика: 01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Бадрисламов Д.И. Выжить на «Титанике»: анализ факторов, влиявших на шансы пассажиров, с использованием нейронных сетей // Современные научные исследования и инновации. 2025. № 12 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2025/12/103962 (дата обращения: 08.02.2026).

Анализ данных о пассажирах «Титаника» остается актуальной темой в области машинного обучения и исторической аналитики. Катастрофа 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.


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


Все статьи автора «Бадрисламов Денис Игоревич»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте.