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

Объем мирового рынка машинного обучения в 2018 году составил 6,9 млрд долларов США, и ожидается, что к 2025 году он достигнет 96,7 млрд долларов США.

96,7 млрд долларов США, позвольте себе на мгновение задуматься об этом.

Теперь возникает вопрос, что же такое машинное обучение? Ну, проще говоря, это как отправить ребенка в школу. Дайте вашему алгоритму машинного обучения большой объем данных, и алгоритм просто изучит сложные взаимосвязи между различными компонентами ваших данных. Звучит просто, правда? Не так много!

Если бы это было легко, все бы так делали. «Твердость» — вот что делает все великим.
~ Джимми Дуган (Их собственная лига)

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

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

Итак, остается вопрос, как построить лучшую модель машинного обучения? Что ж, как говорится, отличный ученик рождается у отличного учителя. Задайте себе вопрос: кто является учителем вашей модели машинного обучения? Данные. А ты кто? Ученый по данным. Я хочу сказать, что для того, чтобы лучше разбираться в моделях машинного обучения, вам нужно быть нестандартным мыслителем специалистом по данным. По сути, это означает, что нужно пробудить в себе ученого и как можно больше экспериментировать со своими данными. Чем лучше качество ваших данных, тем лучше алгоритм, тем лучше модель!

Этот удивительный процесс извлечения дополнительных функций из существующих называется Feature Engineering!

Позвольте мне дать вам простую школьную причину, почему вы должны экспериментировать со своими данными. Я уверен, что большинство из вас, люди, уже знают это. Водород легко воспламеняется, и для поддержания огня требуется кислород, но, объединив 2 атома водорода и 1 атом кислорода, вы получите воду, молекулу, которая гасит огонь. Итак, вы видите, просто комбинируя 2 разных компонента, мы получаем еще один компонент с совершенно другими свойствами. Попробуйте расширить этот аргумент на компоненты ваших данных.

Настало время для примера, легендарного конкурса Титаник прогноз выживания на Kaggle. Вот как я подошел к проблеме и обнаружил некоторые недостающие факты, которые, вы, возможно, пропустили!

Чтобы дать вам краткое введение в проблему, вот как выглядят наши любимые данные:

Вам даны некоторые характеристики каждого человека на борту Титаника, а также выжили ли они при затоплении или нет. Особенности включают имя, пол, количество братьев и сестер, количество родителей и детей, номер билета, стоимость проезда, класс салона и категорию посадки. Вам нужно предсказать, выживет ли данный человек или нет. Первый инстинкт каждого специалиста по данным должен отбросить ненужные столбцы, что имеет смысл, поскольку вы не хотите вводить какие-то данные в алгоритм, из которого нет обучения. Итак, первая мысль — отбросить PassengerId, Name и Ticket. Но придержите лошадей, давайте на мгновение посмотрим поближе.

Копаем глубже в Имя.

Имена связаны с такими титулами, как мистер, миссис, мисс и т. д. Отделяя титул от имени,

Вау! У нас на борту «Титаника» хорошее сочетание людей. Если вы проверили, выжили ли люди с более высоким титулом, сюрприз-сюрприз! Они сделали. Люди с более высоким званием с большей вероятностью выживут на тонущем "Титанике".

Копаем немного глубже в Ticket.

Столбец билета имел несколько числовых полей и несколько символьных полей. Итак, я различал числовые и символьные.

Проверка коэффициента выживаемости для людей с числовыми билетами

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

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

Cabin имеет только 204 значения из 891, что означает, что около 75 % значений являются нулевыми. Первый инстинкт подскажет вам бросить эту колонку. Но позвольте ученому поэкспериментировать с данными!

Копаем немного глубже в Cabin

Как видите, люди с более высоким номером кабины имели больше шансов выжить! Теперь только богатые люди могли позволить себе хижину. Означает ли это, что у богатых людей было больше шансов на выживание?

Некоторые другие выводы из набора данных Титаника

PКласс

Коэффициент выживаемости первого класса на самом деле намного выше и больше 1. Это означает, что богатые люди имели больше шансов выжить на тонущем Титанике. Мы должны зарабатывать больше денег, чувак!

Секс

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

Итак, если вы были богатой женщиной с выдающимся титулом, у вас были наилучшие шансы выжить на тонущем "Титанике".

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

Ознакомьтесь с моей полной реализацией здесь.

Продолжайте экспериментировать, мой коллега по анализу данных!