Наука о данных

Прогноз на выживание на Титанике - II

Угадай, кто выжил во время затопления!

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

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

Насколько верно «мусор на входе, мусор на выходе’ »?

При построении модели машинного обучения не делается упор на выбор алгоритма, а в первую очередь делается упор на EDA и интеллектуальный анализ данных, потому что они играют очень важную роль. Бывают моменты, когда ваша модель будет постоянно давать одинаковую производительность, несмотря на включение разных алгоритмов; вместо того, чтобы переходить от одного алгоритма к другому, всегда рекомендуется использовать следующую практику:

  1. Выполните базовый EDA, используя SQL, Excel или Python / R, однако предпочтительнее.
  2. Вписать недостающие значения.
  3. Постройте элементы, которые кажутся важными, и попытайтесь найти лежащие в их основе закономерности.
  4. Кодируйте категориальные признаки и нормализируйте / стандартизируйте непрерывные.
  5. Выберите простой алгоритм и сразу же обучите модель.
  6. Если вам повезет, вы можете сразу получить желаемый результат. В этом случае перезапустите модель, чтобы проверить свои результаты.
  7. Если вы разочарованы первым запуском, понаблюдайте за тем, как ведет себя модель, и нужно ли вам собирать больше данных или добавлять новые функции и т. Д.

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

Бинарные классификаторы

Наша цель состояла в том, чтобы идентифицировать пассажиров на основе данных характеристик, таких как Возраст, SibSp, Pclass, Fare и т. Д. которые с большей вероятностью пережили крушение корабля. Для этой задачи двоичной классификации давайте обучим пять классификаторов и сравним их производительность на обучающем наборе данных.

Мы будем использовать следующие алгоритмы контролируемого обучения, которые помогут нам делать прогнозы выживания на основе набора данных Titanic:

  • Классификатор случайного леса
  • Логистическая регрессия
  • Классификатор повышения градиента
  • Машина опорных векторов
  • Наивный байесовский классификатор

Классификатор случайного леса

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

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

Логистическая регрессия

Логистическая регрессия относится к классу алгоритмов контролируемого обучения. Вопреки тому, что следует из названия, этот алгоритм специально используется для прогнозирования классификации. Он направлен на вывод двух возможных значений, на основе которых определяется класс. Одна такая математическая функция, которая присваивает значения между желаемым интервалом, то есть [0, 1], называется сигмоидой. Если эта функция возвращает прогноз, близкий к 0, мы объявляем его отрицательным классом, тогда как, если прогноз находится ближе к 1, он считается положительным и, следовательно, нашим целевым классом.

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

Классификатор повышения градиента

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

Как видно из рисунка ниже, мы правильно предсказали большое количество истинных негативов и истинных позитивов, и эта модель также превзошла по эффективности. Более того, он также дал удивительно низкое количество ложных срабатываний:

Машина опорных векторов

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

Как показано на рисунке ниже, существует огромное количество ошибочно предсказанных меток, поэтому эта модель не смогла сделать приемлемых прогнозов в нашем случае:

Наивный байесовский классификатор

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

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

Сравнение производительности

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

Кроме того, важно проанализировать классификации с помощью множества решающих факторов, чтобы мы были более уверены в своем выборе. Ранее мы индивидуально исследовали матрицу неточностей каждой модели, чтобы получить интуитивное представление о правильно заданных метках. Теперь давайте рассмотрим еще несколько факторов, чтобы сделать более точные выводы. Как видно на рисунке ниже, мы учли точность набора данных для обучения и тестирования, точность, отзывчивость и показатель f1 для каждой модели. Эти результаты, однако, показывают, что показатели точности относительно приемлемы в каждом сценарии, но если принять во внимание другие факторы, то очевидно, что «Классификатор случайных лесов» в целом превосходит по эффективности.

На рисунке ниже показано полное сравнение всех пяти моделей, которые мы обучили на данный момент:

Заключение

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

features = pd.Series(rfc.feature_importances_, index=X_train.columns).sort_values()
features.plot(kind='barh', cmap='Pastel1')

Давайте использовать только те, которые имеют значение ≥ 0,06, чтобы мы повторно обучили нашу модель на основе функций, которые имеют большее влияние на поиск скрытых закономерностей в нашем наборе данных. Вот ссылка на проект GitHub для справки.

Спасибо за прочтение! ^ _ ^