Данные, креативность и тактика помогут вам подняться в таблице лидеров

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

Ваше знание алгоритмов машинного обучения — это лишь базовый навык, который вам нужен в Kaggle. Применение различных алгоритмов, ансамблей и оптимизаций гиперпараметров, конечно, необходимо, но тогда это просто автоматизация. Любой может скопировать/вставить код функции алгоритма из Stack-overflow или Python Scikit-learn. Это поможет вам получить достойную оценку, но редко поможет вам попасть в топ-10 или топ-20%.

Я проиллюстрирую эту статью, используя задачу Kaggle Space Titanic, где я достиг 20% лучших в этом соревновании. (ссылка и цитата из набора данных доступны в конце истории)

Я использовал алгоритм машинного обучения XGBoost. Однако не алгоритм помог мне попасть в топ-20%. Что мне помогло, так это

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

1. Сосредоточьтесь на данных, данных, данных

80% времени в процессе машинного обучения тратится на подготовку данных. И проблема Kaggle Space Titanic ничем не отличается. Одним из основных действий при подготовке данных является устранение перекоса и обработка пропущенных значений.

Удаление перекоса — шаг, который обычно пропускают, но очень нужный

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

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

Одним из способов устранения перекоса является применение функции силового преобразования. После удаления перекоса результаты выглядят так, как показано ниже.

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

Работа с отсутствующей ценностью — самый важный шаг нужно сделать как профессионал

В данных много пропущенных значений. Хотя есть много способов заменить отсутствующие данные, подход KNN (K-Nearest Neighbour) очень хорошо сработал в задаче о космическом Титанике.

Полное руководство по замене пропущенных значений KNN вы можете найти в моей статье здесь.

2. Креативная разработка функций — вот что отличает лидеров от остальных.

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

Ищите составные поля в данных

Составные поля — отличный способ начать творческую разработку функций. Составные поля содержат несколько данных, упакованных в одно поле. Вы можете потенциально идентифицировать их, когда у вас есть «_», «-», «/» или «:» в поле. Типичным примером является поле даты. Когда вы видите что-то вроде 31/12/2022, оно состоит из трех элементов: числа, месяца и года.

В космической титанической задаче есть два поля, которые являются составными полями. Первый — это Passengerid, который содержит такие данные, как 0001_01, 0003_01 и т. д. «_» указывает на составное поле. Таким образом, мы можем создать две функции из этого поля.

Точно так же вы можете разложить поле кабины, которое имеет такие значения, как G/3/S и C/1/S. Как вы уже догадались, вы можете разделить их на три функции.

Ищите несколько числовых полей и можно ли их сложить вместе

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

В наборе данных Space Titanic у вас есть несколько числовых полей, таких как плата за обслуживание номеров, плата за посещение спа-салона, плата за торговый центр (представьте себе покупки в космосе!) .

Поле Total имеет большое значение, чтобы победить всех конкурентов в задаче «Космический Титаник»!

Ищите вертикальные узоры с любопытством!

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

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

Какой бы сложный алгоритм вы ни использовали, ни один из них не сможет автоматически вычитать такую ​​функцию. Здесь в игру вступает творческий потенциал человеческого мозга. И это поможет вам пройти долгий путь в таблице лидеров Kaggle.

3. Тактика — последняя миля, чтобы победить в соревновании

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

Решение задачи машинного обучения на самом деле представляет собой последовательность алгоритмов. Как и военная тактика, если вы ее правильно понимаете, вы побеждаете. Если вы ошибетесь, даже если вы используете правильные алгоритмы, вы проиграете!

В задаче «Космический Титаник» у вас есть несколько алгоритмов: замена отсутствующих значений KNN, преобразование мощности, создание дополнительных функций, нормализация, горячее кодирование и XGBoost. Есть ли определенная последовательность, которая помогает получить лучший результат? Ответ - да! И вот оно.

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

Заключение

Чтобы занять высокое место в таблице лидеров Kaggle, вам нужно больше, чем просто знание алгоритмов машинного обучения. Вот главные 3 вещи

  • Сосредоточьтесь на понимании и подготовке ваших данных
  • Креативная разработка функций позволит вам далеко продвинуться вперед
  • Думай как военный тактик! Последовательность действий очень важна

Дополнительные ресурсы

Моя платформа без кода для изучения науки о данных

Вы можете посетить мою платформу, чтобы очень легко изучить науку о данных, а также применить некоторые методы, описанные в этой статье, без программирования. https://experiencedatascience.com

Мой канал на Youtube с демонстрацией науки о данных

Вот ссылка на мой канал на YouTube, где я показываю различные демонстрации по науке о данных, машинному обучению и искусственному интеллекту.
https://www.youtube.com/c/DataScienceDemonstrated

Пожалуйста, подпишитесь, чтобы быть в курсе, когда я публикую новую историю.



Вы также можете присоединиться к Medium по моей реферальной ссылке.



Ссылка на космический титан и цитирование источника данных

Проблема космического титаника и данные доступны здесь: https://www.kaggle.com/competitions/spaceship-titanic/overview

Как указано в правилах (https://www.kaggle.com/competitions/spaceship-titanic/rules), в разделе 7 А данные могут быть использованы для любых целей.

A. Доступ к данным и их использование. Вы можете получать доступ к Данным Конкурса и использовать их для любых целей, будь то коммерческих или некоммерческих, в том числе для участия в Конкурсе и на форумах Kaggle.com, а также для академических исследований и образования.