Гибель «Титаника» — одно из самых печально известных кораблекрушений в истории. 15 апреля 1912 года «Титаник» затонул после столкновения с айсбергом, в результате чего погибли 1502 из 2224 пассажиров и членов экипажа. Эта сенсационная трагедия потрясла международное сообщество и привела к улучшению правил безопасности для судов.
Одной из причин того, что кораблекрушение привело к таким человеческим жертвам, было то, что не хватило спасательных шлюпок для пассажиров и экипажа. Хотя в выживании при затоплении был некоторый элемент удачи, у некоторых групп людей было больше шансов выжить, чем у других, таких как женщины, дети и высший класс.
"Моя цель — применить инструменты машинного обучения, чтобы предсказать, какие пассажиры выжили после трагедии. И какие факторы повысили вероятность того, что пассажиры выжили во время крушения "Титаника""
Ниже приведены шаги, которые необходимо выполнить.
- Обзор набора данных
- Импорт набора данных
- Исследовательский анализ данных
- Предварительная обработка данных
- моделирование
- прогноз
- Обзор набора данных
Источник: https://www.kaggle.com/c/titanic/data
Набор данных состоит из 891 строки и 12 столбцов.
- идентификатор пассажира
- Выжил
- Pкласс
- Имя
- Секс
- возраст
- Сиб Сп
- парч
- Билет
- Транспортные расходы
- Салон самолета
- Отправился
2. Импорт набора данных
Давайте импортируем кучу библиотек перед импортом набора данных. Pandas используется для загрузки данных, библиотеки mat-plot и морской визуализации для визуализации.
импортировать pandas как pd
импортировать matplotlib.pyplot как plt
импортировать seaborn как sns #library для статистического построения графиков
импортировать numpy как np
%matplotlib inline
импортировать math
Pandas используется для загрузки данных, библиотека mat-plot и seaborn используются для построения графиков и визуализации.
Загрузка набора данных
мы импортируем набор данных и сохраняем его в кадре данных pandas под названием data .
Давайте получим базовую информацию о данных. Метод .shape сообщает нам количество строк и столбцов в кадре данных.
В приведенном выше примере мы видим, что наш набор данных содержит 891 строку и 12 столбцов.
Мы можем узнать больше информации о данных, используя .head(), .info() и .describe().
Давайте посмотрим общее количество пассажиров в наборе данных, используя функцию len().
Исследовательский анализ данных
Исследовательский анализ данных. Исследовательский анализ данных (EDA) — это подход к анализу наборов данных для обобщения их основных характеристик, часто с использованием визуальных методов. Статистическая модель может использоваться или нет, но в первую очередь EDA предназначен для того, чтобы увидеть, что данные могут сказать нам помимо формального моделирования или задачи проверки гипотез.
Здесь в этом наборе данных у нас есть 12 функций или столбцов, наша цель — предсказать выживших пассажиров. поэтому мы построим график подсчета, сравнивая каждую функцию или столбец с функцией или столбцом выживших. Для подсчета сюжета мы используем библиотеку Seaborn.
Из приведенного выше графика подсчета мы видим, что показатель выживаемости женщин выше, чем у мужчин.
Из приведенной выше диаграммы мы понимаем, что пассажиры 3-го класса имеют более низкую выживаемость по сравнению с 1-м и 2-м классами.
Предварительная обработка данных.
При предварительной обработке данных мы преобразуем необработанные данные в понятный формат, обрабатывая ненулевые значения (NAN) и отсутствующие значения. Это также называется обработкой данных или очисткой данных.
Давайте посмотрим, есть ли нулевые значения, используя функцию isnull().sum(). Это даст количество нулевых значений в каждом столбце.
Из приведенного выше кода мы видим, что значения NAN присутствуют только в двух столбцах (возраст, кабина). Теперь у нас есть обработка нулевых значений двумя способами. Один из них — замена их средствами этого конкретного столбца. удаление этого столбца с NAN .
Чтобы удалить столбец, мы просто используем функцию .drop(). На приведенной выше диаграмме видно, что столбца Cabin нет.
Поскольку в некоторых столбцах есть текстовые данные, мы преобразуем текстовые данные в числовые данные.
На приведенной выше диаграмме мы видим, что текстовый столбец «Пол» заменен на «мужской». Значение 0 в столбце «Мужской» представляет «Женщина», а 1 — «Мужской». Таким же образом мы заменим столбец «Принято» и Pclass.
Теперь мы объединим новые столбцы в набор данных.
теперь удалите столбцы, имя, пол, билет, класс P, потому что они больше не нужны.
Обучение и тестирование данных
мы разделим данные на тестовое подмножество и обучающее подмножество. Здесь нам нужно определить зависимые и независимые переменные. Следующим шагом будет разделение данных на подмножество обучения и тестирования, для этого мы будем использовать sklearn.
Моделирование
Логистическая регрессия
Теперь мы будем обучать модель на данных поезда.
Предсказания
мы делаем прогнозы по модели, используя X_test. Чтобы измерить производительность модели, мы будем использовать показатели производительности, такие как точность, матрица путаницы, отчет о классификации. Для измерения производительности мы используем тестовые данные, называемые y-test.
Мы видим, что точность модели составляет почти 78%.
Давайте посмотрим, как K-NN работает для этого набора данных.
Из приведенной выше диаграммы мы видим, что точность k-NN составляет 0,629.
мы можем наблюдать, что логистическая регрессия работает хорошо по сравнению с алгоритмом K-NN.
Вывод
Из этого набора данных мы построили модель, которая дает минимальные точки данных с пропущенной классификацией. С помощью этой модели мы можем предсказать, выжил ли человек или умер.