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

Предисловие

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

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

В оставшейся части статьи я расскажу об одном популярном методе кодирования категориальных данных, известном как K-Fold Target Encoding.

Важность функций высокой мощности

В математике количество элементов набора относится к количеству элементов, присутствующих в наборе сущностей. Однако в машинном обучении кардинальность относится к уникальному количеству меток категорий независимых функций. В ситуации, когда у нас может быть много меток функций, многие стратегии кодирования не дают нам наилучших результатов, таких как кодирование меток и двоичное кодирование. Примерами таких функций являются страны, штаты и почтовые индексы, которые могут выдавать существенные отношения с целевыми функциями. Горячее кодирование — хорошая стратегия, но она увеличивает размеры данных, что увеличиваетвычислительную мощность. Другими словами, мы можем приступить к расширенным методам, таким как целевое кодирование K-Fold.

Целевое кодирование и его логика

Прежде чем приступить к целевому кодированию K-Fold, давайте сначала разберемся с целевым кодированием. Альтернативное название целевого кодирования — среднее кодирование, где мы заменяем конкретную метку средним значением целевого объединенногоэлементом метка класса. Например, у нас есть следующие данные, в которых мы хотим закодировать функцию имени:

Мы будем использовать функцию Name в сочетании с Physique Fit? целевой признак набора данных. Мы заменим метки функции «Имя» средним значением целевых значений. Например, Мукешприсутствует два раза, и соответствующие им целевые ярлыки — 0 и 1. Если мы возьмем среднее значение 0 и 1, оно станет 0,5, что будет действовать как переведенное значение для ярлыка Мукеша. Точно так же, если мы оценим среднее для ярлыка Suchit, оно станет равным 0,67, поскольку (1 + 1 + 0) / 3 = 0,67.

Однако, если внимательно присмотреться, у этой стратегии есть проблемы, связанные с предвзятостью при разработке модели. Если вы видите закодированное значение для метки Manav, это означает 1. Это значение (1) выше, чем любое другое значение в закодированном объекте, а также оно вводит высокую корреляцию с целевым объектом. Введение такой предвзятости также называется утечкой данных в терминологии машинного обучения. Именно здесь мы используем целевое кодирование с помощью K-Folds, чтобы избежать утечки данных.

K-кратное целевое кодирование и его логика

Мы все знаем концепцию K-Fold, верно? Разбиваем данные на несколько групп, например, пять. Однаиз этих пяти групп зарезервирована для проверкицелей, а остальные группыпомогают изучатьданные, что помогает уменьшитьпереоснащениедостижения >обобщение. Но здесь мы будем использовать логику немного по-другому. Мы сохраним одну группу и заменим их значения меток средним значением остальных групп.

Пример K-кратного целевого кодирования

Считаем, что у нас есть следующие данные. «Функция» соответствует нашей независимой переменной, а «Цель» — зависимой переменной. Мы также предполагаем, что у нас есть пять складок, на которых мы будем выполнять целевое кодирование. Я объясню логику для одной итерации (Fold 1), а вы сможете решить остальные значения и сверить их с таблицей решений, приведенной ниже.

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

Среднее (A): 5/9 = 0,556, Среднее (B): 2/7 = 0,285.

Затем мы заменяем эти значения метками, присутствующими в сгибе 1. Наше следующее представление представления будет выглядеть примерно так, как показано ниже:

Решение примера K-кратного целевого кодирования

Прежде чем доверять решению, я настоятельно рекомендую вам решить остальные значения.

Заключительные мысли и заключительные комментарии

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

& Вот и все. Надеюсь, вам понравилась эта подробная статья о K-Fold Target Encoding, и вы узнали что-то ценное.

Подпишитесь на меня, чтобы не пропустить новые статьи, связанные с Python, R, наукой о данных, машинным обучением и искусственным интеллектом.

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