Python | Titanic Data EDA с использованием Seaborn
Что такое EDA?
 Исследовательский анализ данных (EDA) - это метод, используемый для анализа и обобщения наборов данных. Большинство методов EDA включают использование графиков.
Набор данных Titanic -
 Это один из самых популярных наборов данных, используемых для понимания основ машинного обучения. Он содержит информацию обо всех пассажирах на борту RMS Titanic, который, к сожалению, потерпел кораблекрушение. Этот набор данных можно использовать, чтобы предсказать, выжил ли данный пассажир или нет.
 Файл csv можно скачать с Kaggle.

| #importing pandas libraryimportpandas as pd #loading datatitanic=pd.read_csv('...input	rain.csv') | 
 Сиборн:
 Это библиотека Python, используемая для статистической визуализации данных. Seaborn, созданный на основе Matplotlib, обеспечивает лучший интерфейс и простоту использования. Его можно установить с помощью следующей команды,
 pip3 install seaborn
Код: Печать заголовка данных
| # View first five rows of the datasettitanic.head() | 
 Выход : 
Код: проверка значений NULL
| titanic.isnull().sum() | 
 Выход :
Столбцы с нулевыми значениями: Возраст, Кабина, Посадка. Позже их необходимо заполнить соответствующими значениями.
Особенности: Набор данных titanic имеет примерно следующие типы функций:
-  Категориальные / номинальные : переменные, которые можно разделить на несколько категорий, но не имеют порядка или приоритета.
 Например. Посадка на судно (C = Шербур; Q = Квинстаун; S = Саутгемптон)
-  Двоичный : подтип категориальных функций, в котором переменная имеет только две категории.
 Например: Пол (мужской / женский)
-  Порядковый : они похожи на категориальные признаки, но имеют порядок (т. Е. Могут быть отсортированы).
 Например. Pкласс (1, 2, 3)
-  Непрерывный : они могут принимать любое значение между минимальным и максимальным значениями в столбце.
 Например. Возраст, стоимость проезда
-  Count: Они представляют собой подсчет переменной.
 Например. СибСп, Перчин
- Бесполезно : они не влияют на конечный результат модели машинного обучения. Здесь PassengerId, Name, Cabin и Ticket могут попадать в эту категорию.
Код: графический анализ
| importseaborn as snsimportmatplotlib.pyplot as plt # Countplotsns.catplot(x="Sex", hue="Survived",kind="count", data=titanic) | 
Выход :

Просто наблюдая за графиком, можно приблизительно определить, что выживаемость мужчин составляет около 20%, а выживаемость женщин - около 75% . Таким образом, от того, является ли пассажир мужчиной или женщиной, играет важную роль в определении того, выживет ли он.
Код: Pclass (порядковый номер) vs выживший
| # Group the dataset by Pclass and Survived and then unstack themgroup=titanic.groupby(['Pclass','Survived'])pclass_survived=group.size().unstack() # Heatmap - Color encoded 2D representation of data.sns.heatmap(pclass_survived, annot=True, fmt="d") | 
 Выход:
Это помогает определить, была ли выживаемость у пассажиров более высокого класса выше, чем у пассажиров более низкого класса, или наоборот. Пассажиры класса 1 имеют более высокий шанс на выживание по сравнению с пассажирами классов 2 и 3 . Это означает, что Pclass значительно увеличивает выживаемость пассажиров.
Код: возраст (непрерывная функция) vs выжившие
| # Violinplot Displays distribution of data# across all levels of a category.sns.violinplot(x="Sex", y="Age", hue="Survived",data=titanic, split=True) | 
 Выход :
 Этот график дает сводную информацию о возрастном диапазоне мужчин, женщин и детей, которые были спасены. Выживаемость -
- Подходит для детей.
- Высокий для женщин в возрасте 20-50 лет.
- Для мужчин меньше с возрастом.
 Поскольку столбец «Возраст» важен, пропущенные значения необходимо заполнить либо с помощью столбца «Имя» (определение возраста на основе приветствия - г-н, г-жа и т. Д.), Либо с помощью регрессора.
 После этого шага можно создать еще один столбец - Age_Range (на основе столбца возраста), и данные можно будет снова проанализировать.
Код: факторный график для Family_Size (функция подсчета) и Family Size.
| # Adding a column Family_Sizetitanic['Family_Size']=0titanic['Family_Size']=titanic['Parch']+titanic['SibSp'] # Adding a column Alonetitanic['Alone']=0titanic.loc[titanic.Family_Size==0,'Alone']=1 # Factorplot for Family_Sizesns.factorplot(x='Family_Size', y='Survived', data=titanic) # Factorplot for Alonesns.factorplot(x='Alone', y='Survived', data=titanic) | 


Family_Size обозначает количество человек в семье пассажира. Он рассчитывается путем суммирования столбцов SibSp и высушивать соответствующего пассажира. Кроме того, добавлен еще один столбец « Один», чтобы проверить шансы на выживание пассажира-одиночки по сравнению с пассажиром с семьей.
Важные наблюдения -
- Если пассажир один, выживаемость меньше.
- Если размер семьи больше 5, шансы на выживание значительно снижаются.
Код: штриховая диаграмма для тарифа (непрерывная функция)
| # Divide Fare into 4 binstitanic['Fare_Range']=pd.qcut(titanic['Fare'],4) # Barplot - Shows approximate values based# on the height of bars.sns.barplot(x='Fare_Range', y='Survived',data=titanic) | 
 Выход :
Тариф - это тариф, оплачиваемый пассажиром. Поскольку значения в этом столбце являются непрерывными, их необходимо поместить в отдельные ячейки (как это сделано для функции «Возраст» ), чтобы получить четкое представление. Можно сделать вывод, что если пассажир заплатил более высокую стоимость проезда, выживаемость выше.
Код: графики категориального подсчета для начального объекта
| # Countplotsns.catplot(x='Embarked', hue='Survived',kind='count', col='Pclass', data=titanic) | 

Некоторые примечательные наблюдения:
- Большинство пассажиров сели из S. Итак, недостающие значения можно заполнить буквой S.
- Большинство пассажиров класса 3 высаживаются из Q.
- S выглядит удачливым для пассажиров классов 1 и 2 по сравнению с классом 3.
Заключение :
-  Столбцы, которые можно удалить:- PassengerId, Name, Ticket, Cabin: это строки, их нельзя разделить на категории, и они не влияют на результат.
- Возраст, стоимость проезда: вместо этого сохраняются соответствующие столбцы диапазона.
 
- Огромные данные могут быть проанализированы с использованием гораздо большего количества графических методов, а также большего количества корреляций столбцов, чем описано в этой статье.
- После завершения EDA полученный набор данных можно использовать для прогнозов.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.
