Original size 1140x1600

Анализ данных «Титаник»

PROTECT STATUS: not protected
3

Выбор данных

Для проекта были выбраны данные о пассажирах Титаника. Эти данные содержат следующие параметры:

1. Возраст (Age): Возраст пассажиров на момент катастрофы. 2. Пол (Sex): Пол пассажиров, обозначенный как «male» (мужчина) или «female» (женщина). 3. Выжившие (Survived): Информация о том, выжил ли пассажир (1) или погиб (0). 4. Класс каюты (Pclass): Класс, в котором пассажир путешествовал, указанный как 1, 2 или 3 класс. 5. Цена билета (Fare): Стоимость билета, которую заплатил пассажир за свое путешествие. 6. Наличие братьев/сестер и супругов на лайнере (Sibsp) 7. Наличие детей/родителей на лайнере (Parch) 8. Номер кабины (Cabin) 9. Пункт отправления (Embarked)

Эти данные были получены из набора данных «Titanic» из соревнования Kaggle (https://www.kaggle.com/competitions/titanic/data?select=train.csv)

Недавно мною был пересмотрен фильм Джеймса Кэмерона «Титаник». Именно поэтому во время поиска данных для выполнения задания я обратила внимание на данный датасет. Мне было интересно проанализировать данные по катастрофе Титаника из-за их богатства и разнообразия. Эти данные также предоставляют возможность исследовать социальные аспекты и неравенства, существовавшие в то время, такие как влияние пола и социального статуса на шансы выживания

Анализ данных

1. import matplotlib.pyplot as plt: Для начала импортируем библиотеку Matplotlib для создания и отображения графиков.

2. import pandas as pd: Затем импортируем библиотеку Pandas для работы с данными в виде таблиц (DataFrame), что удобно для анализа и манипуляции данными.

3. import numpy as np: После импортируем библиотеку NumPy для работы с массивами и выполнения числовых операций, что полезно для обработки и анализа данных.

4. %matplotlib inline: В четвертой строке импортируем Jupyter Notebook на отображение графиков Matplotlib непосредственно в ячейках ноутбука, обеспечивая удобную визуализацию данных в контексте кода.

big
Original size 1194x164

Далее данные из файла «train.csv» загружаются в DataFrame Pandas для последующего анализа и визуализации. Следующим шагом из таблицы с данными был удален параметр PassengerId так как он не является объектом для анализа. Затем было найдено количество пустых ячеек в разных столбах. Было выявлено, что существует 177 пустых ячеек с возрастом, 687 пустых ячеек с номером кабины и 2 ячейки с пунктом отправления.

Original size 1020x514

Для параметра пункта отправления в пустые ячейки было подставлено значение моды, а для параметра с номером кабины была проставлено «Unknown»

Original size 1266x530

Стилизация графиков

Стилизация графиков была основана на использовании цветов в голубых оттенках. Данное цветовое решение было основано на цветах айсберга. Мною было выбрано три оттенка: skyblue, dodgerblue и steelblue. Также для графиков была сделана обводка, в некоторых случаях белая, в некоторых случаях голубая

Итоговые графики

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

Original size 2378x234
Original size 1600x1200

Процент выживших по полу

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

Original size 1794x250
Original size 1600x1200

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

Original size 1290x194

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

Original size 841x547

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

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

Original size 1048x190
Original size 850x624

Цена билета & Возраст

Пятый график показывает процент выживших и умерших среди людей с счастливым билетиком, без него и общий процент. Для построения данного графика, сначала была написана программа для поиска этих самых счастливых билетиков. Номера билетов были предварительно почищены от лишних знаков, чтобы остались только цифры. Затем если билетик состоял из четного количества цифр, выявлялось счастливый он или нет (сумма первых символов, равна сумме стольких же последних цифр). После этого в исходный датасет был добавлен новый столбец «is_lucky», показывающий счастливый ли билетик (True — счастливый, False — нет). Столбчатая диаграмма в данном случае позволяет легко сравнить процент выживших и умерших среди пассажиров с разными типами билетиков.

Original size 1204x434
Original size 1800x944
Original size 764x528

Выживаемость в зависимости от типа билета

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

Для поиска вариантов стилизации я обратилась к чату GPT от Open Ai (https://chatgpt.com) со следующим запросом, включающим в себя код для первого графика:

«s = train[train['Survived'] == 1] survived_female = round (s[s['Sex']=='male'].shape[0]/s.shape[0]*100, 1) survived_male = 100 — survived_female fig, ax = plt.subplots () ax.pie ([survived_male, survived_female], labels=['Male', 'Female'], autopct='%1.1f%%', colors = ['skyblue', 'dodgerblue'])

Стилизуй pie chart в голубых оттенках, сделай максимально красиво»

Также я обратилась к чату GPT (https://chatgpt.com) для поиска решений для создания графиков со следующим запросом:

«Сделай 5 репрезентативных диаграмм основываясь на данных.

Используй библиотеки: import matplotlib.pyplot as plt import pandas as pd»

Из вариантов, предложенных чатом GPT мне понравились графики про выживаемость в зависимости от класса пассажиров, а также про распределение возраста

Заключение

В ходе анализа данных мною были выявлены несколько интересных фактов. Во-первых процент выживших женщин превышает в два раза процент выживших мужчин. Во-вторых, среди пассажиров 1 класса выжило более 60% пассажиров, в то время как всего 25% пассажиров 3 класса удалось выжить. В-третьих, как было отмечено ранее, среди пассажиров на лайнере было достаточно много детей до 10 лет (около 65-70 человек), в то время как пожилых пассажиров старше 60 лет было мало (около 25 человек). При анализе зависимости цены билета от возраста, не было выявлено корреляции между данными двумя параметрами, но лично я обратила внимание на большое количество билетов стоимость около 10-30 долларов. Пятый график четко показывает, что счастливый билетик вопреки различным суевериям оказался не таким уж и счастливым для пассажиров лайнера

Блокнот и датасет

Датасет в формате csv: https://disk.yandex.ru/i/lQgUFcQFh7ovYA

Блокнот с анализом: https://disk.yandex.ru/d/o0_g8WqrTV0Z_w

Анализ данных «Титаник»
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