Python | Titanic Data EDA с использованием Seaborn

Опубликовано: 22 Июля, 2021

Что такое EDA?
Исследовательский анализ данных (EDA) - это метод, используемый для анализа и обобщения наборов данных. Большинство методов EDA включают использование графиков.

Набор данных Titanic -
Это один из самых популярных наборов данных, используемых для понимания основ машинного обучения. Он содержит информацию обо всех пассажирах на борту RMS Titanic, который, к сожалению, потерпел кораблекрушение. Этот набор данных можно использовать, чтобы предсказать, выжил ли данный пассажир или нет.
Файл csv можно скачать с Kaggle.

Код: загрузка данных с помощью Pandas




#importing pandas library
import pandas as pd
#loading data
titanic = pd.read_csv( '...input rain.csv' )

Сиборн:
Это библиотека Python, используемая для статистической визуализации данных. Seaborn, созданный на основе Matplotlib, обеспечивает лучший интерфейс и простоту использования. Его можно установить с помощью следующей команды,
pip3 install seaborn



Код: Печать заголовка данных




# View first five rows of the dataset
titanic.head()

Выход :

Код: проверка значений NULL




titanic.isnull(). sum ()

Выход :

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

Особенности: Набор данных titanic имеет примерно следующие типы функций:

  • Категориальные / номинальные : переменные, которые можно разделить на несколько категорий, но не имеют порядка или приоритета.
    Например. Посадка на судно (C = Шербур; Q = Квинстаун; S = Саутгемптон)
  • Двоичный : подтип категориальных функций, в котором переменная имеет только две категории.
    Например: Пол (мужской / женский)
  • Порядковый : они похожи на категориальные признаки, но имеют порядок (т. Е. Могут быть отсортированы).
    Например. Pкласс (1, 2, 3)
  • Непрерывный : они могут принимать любое значение между минимальным и максимальным значениями в столбце.
    Например. Возраст, стоимость проезда
  • Count: Они представляют собой подсчет переменной.
    Например. СибСп, Перчин
  • Бесполезно : они не влияют на конечный результат модели машинного обучения. Здесь PassengerId, Name, Cabin и Ticket могут попадать в эту категорию.

Код: графический анализ




import seaborn as sns
import matplotlib.pyplot as plt
# Countplot
sns.catplot(x = "Sex" , hue = "Survived" ,
kind = "count" , data = titanic)

Выход :



Просто наблюдая за графиком, можно приблизительно определить, что выживаемость мужчин составляет около 20%, а выживаемость женщин - около 75% . Таким образом, от того, является ли пассажир мужчиной или женщиной, играет важную роль в определении того, выживет ли он.

Код: Pclass (порядковый номер) vs выживший




# Group the dataset by Pclass and Survived and then unstack them
group = 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_Size
titanic[ 'Family_Size' ] = 0
titanic[ 'Family_Size' ] = titanic[ 'Parch' ] + titanic[ 'SibSp' ]
# Adding a column Alone
titanic[ 'Alone' ] = 0
titanic.loc[titanic.Family_Size = = 0 , 'Alone' ] = 1
# Factorplot for Family_Size
sns.factorplot(x = 'Family_Size' , y = 'Survived' , data = titanic)
# Factorplot for Alone
sns.factorplot(x = 'Alone' , y = 'Survived' , data = titanic)

Family_Size обозначает количество человек в семье пассажира. Он рассчитывается путем суммирования столбцов SibSp и высушивать соответствующего пассажира. Кроме того, добавлен еще один столбец « Один», чтобы проверить шансы на выживание пассажира-одиночки по сравнению с пассажиром с семьей.

Важные наблюдения -

  • Если пассажир один, выживаемость меньше.
  • Если размер семьи больше 5, шансы на выживание значительно снижаются.

Код: штриховая диаграмма для тарифа (непрерывная функция)




# Divide Fare into 4 bins
titanic[ '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)

Выход :

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

Код: графики категориального подсчета для начального объекта




# Countplot
sns.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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.

Следующий
Генерация случайных идентификаторов с использованием UUID в Python
Рекомендуемые статьи
Страница :
Статья предоставлена:
Самюкта
@SamyuktaSHegde
Голосуйте за трудности
Теги статьи:
  • Технический скриптер 2019
  • Машинное обучение
  • Python
  • Технический скриптер
Теги практики:
  • Машинное обучение
Сообщить о проблеме

РЕКОМЕНДУЕМЫЕ СТАТЬИ