«Титаник» был самым большим в мире трансатлантическим круизным лайнером на момент завершения строительства в 1912 году. 15 апреля 1912 года во время своего первого рейса он врезался в айсберг и затонул в ледяных водах Северной Атлантики. Оно вошло в историю как одна из крупнейших морских катастроф, в результате которой погибло 1514 человек.

«Титаник», названный в честь этого корабля, — американский драматический фильм 1997 года, снятый Джеймсом Кэмероном. Леонардо ДиКаприо и Кейт Уинслет делят главные роли в фильме, основанном на гибели Титаника. Они изображали двух молодых людей из разных социальных слоев, которые влюбляются друг в друга.

Кейт Уинслет играет 17-летнюю Роуз ДеВитт Букатер, пассажирку первого класса, которая садится на корабль из Саутгемптона, а Леонардо ДиКаприо играет 20-летнего пассажира третьего класса на борту >Джек Доусон из Саутгемптона.

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

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

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

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

Надеюсь, вам понравится читать :)

Давайте вместе шаг за шагом выполним этот вводный проект по машинному обучению.

  1. Загрузка библиотек и набора данных

2. Обзор набора данных

В наборе данных 891 единица наблюдения и 12 переменных. Первая заметная проблема — отсутствие салонных переменных. Довольно много по сравнению с количеством наблюдений. Это заставило меня сначала спросить: «Следует ли удалить эту переменную из набора данных?» приводит вопрос. Но на этом этапе я буду осторожен и продолжу изучать данные.

3. Список переменных по типам

Когда я впервые посмотрел на набор данных, я заметил, что переменные с именами «Embarked, Survived, Pclass, SibSp, Parch», которые кажутся числовыми, на самом деле являются категориальными переменными.

4. Анализ по типам переменных

Когда я провел анализ категориальных переменных, я заметил, что показатель выживаемости составляет 38 процентов. Также я заметил, что некоторые классы переменных «SibSp» и «Parch» присутствуют в очень небольшом количестве данных. Поэтому я думаю, что смогу создать более осмысленный класс, объединив эти классы на следующих шагах. Однако теперь я продолжу анализ, чтобы лучше понять данные.

5. Отсутствующие значения

Как пройти через отсутствующие переменные Cabin и Age?

Я имею в виду использовать алгоритм KNN для переменной возраста. Этот алгоритм определяет k-ближайших соседних единиц наблюдения к отсутствующему значению в переменной и присваивает среднее значение этих окрестностей в соответствующей переменной.

Но мы не можем использовать алгоритм KNN для переменной «Каюта», потому что пропускная способность в переменной слишком высока, и у нее слишком много классов, хотя это категориальная переменная. Изучив ее взаимосвязь с целевой переменной, я решу, следует ли удалить эту переменную из набора данных.

Существует разница в средней выживаемости пассажиров без переменной «кабина» по сравнению с другими пассажирами. Я проверю, является ли эта разница статистически значимой. Я буду использовать A/B-тестирование для этого.

Значение p, полученное в результате A/B-теста, меньше 0,05. Это означает, что разница в средней выживаемости пассажиров, у которых отсутствует переменная «Кабина», по сравнению с другими пассажирами является статистически значимой. Поэтому я заменю переменную «Cabin» на переменную с именем «NEW_CABIN_BOOL», которая содержит информацию об отсутствующих значениях в этой переменной.

Я хочу удалить переменные с именами «Билет» и «Имя» из набора данных, что, я думаю, не повлияет на модель, которая будет предсказывать выживание. Но сначала я создам несколько новых переменных из переменной с именем «Имя», которые, я думаю, будут важны для успеха модели.

Я также добавлю несколько новых переменных, которые, по моему мнению, будут важны для успеха модели.

6. Разработка функций

Переменные с отсутствующими значениями в данных теперь называются «ВОЗРАСТ» и «НАЧАЛО». Теперь моя цель — заполнить недостающие наблюдения в этих переменных.

Я заполнил недостающие наблюдения в переменной «ВОЗРАСТ» медианой, используя переменную с именем «NEW_TITLE». Я имею в виду, что если в имени пассажира есть слово «Графиня» с пропущенным значением в переменной «ВОЗРАСТ», я заполнил это пропущенное значение медианным возрастом пассажиров с «Графиня». Я заполнил 2 пропущенных наблюдения в переменной «EMBARKED» классом с наибольшей частотой в этой переменной.

Теперь я вернусь к созданию новой переменной, которую я сделал на предыдущем шаге, и я буду использовать переменную «ВОЗРАСТ» для создания новых переменных, которые, как я думаю, будут способствовать успеху модели.

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

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

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

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

Прогноз

К несчастью для Джека Доусона, его единственным шансом на выживание были несколько спасательных шлюпок на «Титанике».