Согласно учебнику Kaggle

О стихийном бедствии:

Титаник был британским пассажирским лайнером, который затонул во время своего первого рейса из Саутгемптона, Англия, в Нью-Йорк 15 апреля 1912 года. Корабль столкнулся с айсбергом в северной части Атлантического океана и затонул, в результате чего погибло более 1500 человек. Несмотря на то, что корабль был оснащен многочисленными средствами безопасности, он не смог предотвратить катастрофу. Гибель «Титаника» оказала глубокое влияние на общественное мнение и привела к серьезным изменениям в правилах безопасности на море.

К ним относятся требование, чтобы на всех судах было достаточно спасательных шлюпок для размещения всех пассажиров и членов экипажа, проведение регулярных учений по безопасности и создание международного ледового патруля для наблюдения за айсбергами в Северной Атлантике. История Титаника увековечена в популярной культуре и продолжает очаровывать людей во всем мире.

Вызов:

Целью этого конкурса является использование уже существующего набора данных для разработки прогностической модели, которая может определить, какие люди выжили бы или погибли в катастрофе Титаника. По сути, участники создадут свой собственный алгоритм машинного обучения (ML), который с помощью предоставленного набора данных сможет прогнозировать выживание пассажиров.

Сведения о представлении:

Учебник Kaggle Titanic: https://www.kaggle.com/code/alexisbcook/titanic-tutorial/notebook

Конкурс Kaggle Titanic Disaster: https://www.kaggle.com/competitions/titanic

Гитхаб: https://github.com/Abhismoothie/Data-Mining/tree/main

Используемый набор данных:

Для этого соревнования нам предоставляются два набора данных: обученный набор данных (train.csv) и тестовый набор данных (test.csv). Более ранний используется для обучения нашей модели машинного обучения, а более поздний — для ее тестирования.

PassengerId: идентификаторы от 1 до 891 для уникальной идентификации каждого пассажира.

Survived: пронумерованные значения, 1-выжившие и 0-мертвые (отсутствует этот столбец в test.csv, который будет предсказывать наша модель машинного обучения)

Pclass: Пассажирский класс

Name: имя пассажира

Sex: пронумерованные значения {мужской – 65 %, женский – 35 %} определяют пол пассажира.

Age: возраст пассажира (от 0,42 до 80 лет)

SibSp: число, обозначающее брата, сестру или супруга пассажира на корабле (от 0 до 8)

Parch: число, обозначающее родителей или детей пассажира (от 0 до 6)

Ticket: номер билета пассажира

Fare: стоимость билета.

Cabin: каюта пассажира. Возможные значения: null, G6 и другие.

Embarked: порт отправления, в котором высадились пассажиры. Это перечисляет значения как S, C, Q, обозначающие Саутгемптон, Шербур и Квинстаун соответственно.

Наш выходной набор данных должен иметь заголовки в файле CSV: (пример был приведен в gender_submission.csv с использованием RandomForestClassifier)

PassengerId: идентификаторы от 1 до 891 для уникальной идентификации каждого пассажира.

Survived: пронумерованные значения, 1-выжившие и 0-мертвые (отсутствует этот столбец в test.csv, который будет предсказывать наша модель машинного обучения)

Первое представление:

Это представление выполняется, следуя руководству kaggle titanic:



И первоначальная оценка была — 0,77511.

Мой вклад:

Этот код загружает набор данных Titanic, удаляет ненужные столбцы, обрабатывает пропущенные значения, исправляет ошибки и несоответствия, преобразует категориальные переменные, нормализует числовые переменные, удаляет выбросы и проверяет очищенные данные. Затем для прогнозирования выживания пассажиров применяется популярный алгоритм машинного обучения Gradient Boosting.

Данные загружаются из двух файлов CSV в Pandas DataFrames. Нерелевантные столбцы удаляются с помощью метода drop(). Отсутствующие значения в столбце «Возраст» заменяются средним возрастом пассажиров с помощью метода fillna(). Столбец «Пол» преобразуется в двоичные значения с помощью метода replace(). Категориальные переменные преобразуются в фиктивные переменные с помощью метода get_dummies(). Числовые переменные нормализуются с помощью метода MinMaxScaler(). Выбросы удаляются из столбца «Тариф» с помощью numpy.abs(), среднего значения и стандартного отклонения. Наконец, очищенные данные проверяются с помощью метода description(), и имена столбцов выводятся на консоль. Функция GradientBoostingClassifier() из библиотеки scikit-learn используется для построения модели и прогнозирования выживания пассажиров на основе их особенностей.

  • Код считывает наборы данных о поездах и тестах Титаника и удаляет из них ненужные столбцы, такие как «Имя», «Билет» и «Кабина».
  • Отсутствующие значения в столбцах «Возраст» и «Тариф» обрабатываются путем заполнения их средним и медианным значением соответственно. Любые строки с отсутствующими данными удаляются из обучающего набора.
  • Столбец «Пол» исправлен и преобразован в числовые данные путем замены «мужской» на 0 и «женский» на 1.
  • Категориальная переменная «Embarked» преобразуется в числовые данные с использованием горячего кодирования с функцией «pd.get_dummies».
  • Числовые переменные «Возраст» и «Тариф» нормализуются с использованием «MinMaxScaler» из модуля «sklearn.preprocessing».
  • Выбросы удаляются из столбца «Стоимость» обучающего набора.
  • Определены функции и цель модели. Модель обучается с использованием классификатора Gradient Boosting Classifier из модуля sklearn.ensemble с параметрами n_estimators=100, learning_rate=0,1, max_depth=3 и random_state=42.
  • Обученная модель используется для прогнозирования тестового набора.
  • Прогнозы сохраняются в файл с именем «submission.csv» с использованием функций «pd.DataFrame» и «to_csv».

Оценка, которую я получил после перебранки в коде — 0,7799

Ссылки