Original size 1152x1652

Анализ и визуализация данных Titanic

PROTECT STATUS: not protected
3

Выбранные данные

Для анализа данных в моём проекте был взят датасет о пассажирах «Титаника» доступный на Kaggle. Он соддержит разнообразную информацию о возрасте, поле, классе билета, а также о том выжил ли пассажир после крушения лайнера.

Интерес этого набора данных для меня заключается в том что они не только несут в себе значительную историческую ценность, но так же позволяют легко продемонстрировать навыки анализа, предобработки и визуализации. Данный датасет достаточно разнобразен с помощью него можно сделать выводы и исследовать социальные и демографические факторы. Например кто чаще выживал в катастрофе — мужчины или женщины, богатые или бедные, молодые или пожилые? Ответы на эти вопросы составляют интерес анализа и делают его позновательным.

Для визуализации я выбрала следующие виды графиков

1. Столбчатые диаграммы: Они помогут сравнить доли выживших в разных группах (например, по полу или классу).

2. Гистограммы: Покажут распределения возрастов и дадут понять, как возраст влияет на шансы выжить.

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

Эти виды визуализаций дополняют друг друга. К примеру тепловая карта помогает понять общую картину, столбчатые диаграмы наглядно показывают различия, а гистограммы, продемонстрируют детали распределения возрастов.

Подготовка и предобработка данных

В первую очередь мною был загружен файл с данными train.csv и проведён первичный анализ. Код написан на Python с использованием библиотек pandas, matplotlib и seaborn.

Пример кода:

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

sns.set_theme (style="whitegrid», palette="deep»)

df = pd.read_csv ('train.csv')

На этом этапе:

1. Проверены размеры датасета, типы столбцов и пропуски. 2. В столбце Age были пропуски, их заполнили медианой возраста. 3. Столбцы, не представляющие интереса для визуализации (например, Cabin, часто пустой), удалены.

Пример кода для обработки:

df['Age'] = df['Age'].fillna (df['Age'].median ()) df = df.drop (columns=['Cabin', 'Ticket', 'Name'])

После этого данные стали более чистыми и готовыми к дальнейшему анализу.

Original size 2156x1360

Итоговый вид DataFrame

Код был сгенерирован с помощью ChatGPT o1, используя промпт:

«Сгенерируй код на языке програмирования phyton используя библиотеку pandas, что будет анализировать прикреплённый csv файл*, анализ должен содержать визуализацию и анализ данных о поле, возрасте, классе билета пострадавших в катастрофе»

  • к промпту был прикреплён файл train.csv

Корреляции между признаками

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

Original size 1450x1214

Тепловая карта корреляций между числовыми признаками Titanic Dataset

Тепловая карта даёт возможность визуально оценить эти связи. По ней видно, что «Survived» неплохо коррелирует с полом (который мы преобразуем в численный признак для анализа, если потребуется) и классом, но нет прямых сильных линейных связей с возрастом или стоимостью билета.

Анализ по полу

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

Original size 1102x804

Женщины имели существенно более высокий процент выживаемости по сравнению с мужчинами

На графике видно, что доля выживших женщин значительно выше — в среднем около 74%, в то время как среди мужчин этот показатель около 19%. Это соответствует известным историческим данным о том, что при эвакуации женщин и детей пропускали в шлюпки в первую очередь.

Анализ по классу билета

Статус в обществе и класс билета, так же, несомненно, играли роль. Рассмотрим распределение выживаемости по классу.

Original size 1080x800

Пассажиры первого класса имели наиболее высокий шанс выжить

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

Возраст и выживаемость

Так же был проведён анализ среди разных возрастных категорий. Было выяснено, были ли более уязвимы пожилые пассажиры или, может быть, наоборот?

Для этого использовалась гистограмма возрастов, раскрашенная по признаку выживания.

Original size 1406x1128

Распределение возрастов выживших и невыживших пассажиров

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

Стилизация

Использован стиль

seaborn.set_theme (style="whitegrid», palette="deep»)

он обеспечивает приятный светлый фон и сочные, но не кричащие цвета.

Добавлены заголовки, подписи осей и легенды, что делает графики понятными сами по себе.

Места для аннотаций: на столбчатых диаграммах показаны точные проценты над столбиками для более удобного восприятия.

Вдохновением для стилизации послужила официальная галерея примеров seaborn.

Выводы

Проведя анализ было обнаруженно несколько чётких основных закономерностей.

1. Пол: Женщины выживали значительно чаще мужчин. 2. Класс билета: Пассажиры первого класса имели лучшие шансы на спасение. 3. Возраст: Наблюдается несколько интересных моментов, особенно высокие шансы выжить у младенцев, однако в целом возраст был менее определяющим, чем пол или класс.

Дополнительные материалы (код, данные)

Для воспроизведения анализа можно скачать датасет и ноутбук с кодом по ссылке:

Анализ и визуализация данных Titanic
3
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more