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

Кодирование метки - это преобразование категориальных переменных в числовую или машиночитаемую форму. Например, преобразование объекта в 0 как мужской и 1 как женский.

  • Кодировка метки используется , когда данные являются порядковыми или существует связь между категориями. Например, такие категории, как средний, хороший и выдающийся, могут быть помечены как 0,1 и 2 соответственно. Модель будет приписывать больший вес / важность хорошему, чем среднему, и аналогично большему весу / важности выходному, чем хорошему.
  • Следующая веская причина использовать кодировку меток - когда в функции слишком много категорий, и добавление такого количества столбцов в набор данных может занять много памяти.

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

Чтобы избежать этой проблемы, мы используем кодировку One-Hot.

Одно горячее кодирование создает столько столбцов, сколько категорий в функции, и сопоставляет 0 или 1 в каждом столбце. Возьмем пример:

Интерпретация: первая строка указывает на юго-западный регион, поэтому здесь 1, а в других столбцах - ноль.

Но One-hot кодирование имеет собственное ограничение, которое называется ловушка фиктивной переменной.

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

Давайте разберемся с мультиколлинеарностью на примере из жизни.

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

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

Мы видим, что мы исключили первую категорию к северо-востоку от данных.

Это можно сделать с помощью следующего кода:

Помните, drop_first всегда отбрасывает первый столбец в каждой категории.