Согласно учебнику 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:
Титаник: машинное обучение после катастрофы
Начните здесь! Прогнозируйте выживание на «Титанике и ознакомьтесь с основами машинного обученияwww.kaggle.com»
И первоначальная оценка была — 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
Ссылки