«Титаник» был самым большим в мире трансатлантическим круизным лайнером на момент завершения строительства в 1912 году. 15 апреля 1912 года во время своего первого рейса он врезался в айсберг и затонул в ледяных водах Северной Атлантики. Оно вошло в историю как одна из крупнейших морских катастроф, в результате которой погибло 1514 человек.
«Титаник», названный в честь этого корабля, — американский драматический фильм 1997 года, снятый Джеймсом Кэмероном. Леонардо ДиКаприо и Кейт Уинслет делят главные роли в фильме, основанном на гибели Титаника. Они изображали двух молодых людей из разных социальных слоев, которые влюбляются друг в друга.
Кейт Уинслет играет 17-летнюю Роуз ДеВитт Букатер, пассажирку первого класса, которая садится на корабль из Саутгемптона, а Леонардо ДиКаприо играет 20-летнего пассажира третьего класса на борту >Джек Доусон из Саутгемптона.
Эти два молодых человека встречаются случайно и влюбляются друг в друга, несмотря на разницу в классе. После того, как корабль столкнулся с айсбергом, Роуз понимает, что не может оставить Джека, пока она собирается сесть в одну из спасательных шлюпок, что очень мало по сравнению с количеством пассажиров, и прыгает обратно на корабль, чтобы воссоединиться с ним.
После того, как все спасательные шлюпки ушли, корабль разделяется на две части, и Джек и Роуз спускаются в океан с этой последней частью корабля. Джек помогает Роуз получить настенное покрытие, которое может выдержать только одного человека. Джек, держась за край простыни, говорит Роуз, что умрет старухой в своей теплой постели.
Это сцена, где большинство людей, смотрящих фильм, не могут сдержать слез. Спасательная шлюпка, ищущая выживших, спасает Роуз, но Джек умирает от переохлаждения до прибытия спасательной шлюпки.
В этой статье я попытаюсь предсказать, есть ли у Джека Доусона шанс выжить, используя данные пассажиров корабля-титана с помощью алгоритмов машинного обучения.
Надеюсь, вам понравится читать :)
Давайте вместе шаг за шагом выполним этот вводный проект по машинному обучению.
- Загрузка библиотек и набора данных
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-процентную точность. В этот момент я могу остановиться и угадать Джека Доусона. Но давайте сделаем еще один шаг и оптимизируем гиперпараметры некоторых моделей выше.
Прогноз
К несчастью для Джека Доусона, его единственным шансом на выживание были несколько спасательных шлюпок на «Титанике».