Label Encoder против One Hot Encoder в машинном обучении [2022]

Опубликовано: 2021-01-04

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

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

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

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

Оглавление

Кодировщик этикеток

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

Например, у нас есть набор данных, в котором есть сравнение определенного качества в определенном навыке в форме превосходного сравнения между братьями и сестрами. Набор данных хороший, лучший, лучший. После применения кодировщика меток каждому качеству будет присвоена метка 0,1,2 соответственно. Метка хорошего качества — 0, лучшего — 1, лучшего качества — 2.

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

Кодирование меток в Python можно реализовать с помощью библиотеки Sklearn. Sklearn предоставляет очень эффективный метод кодирования категорий категориальных признаков в числовые значения. Кодер меток кодирует метки с кредитом от 0 до n-1 классов, где n — количество различных меток. Если лейбл повторяется, он назначает точное значение, как указано ранее.

И чтобы преобразовать этот тип категориальных текстовых данных в данные, которые можно понять с помощью числовых данных модели, мы используем класс Label Encoder. Нам нужно пометить кодирование исходного столбца, импортировать класс LabelEncoder из библиотеки sklearn, оборудовать и обновить начальный раздел данных, а затем восстановить имеющиеся текстовые данные с помощью свежих закодированных данных.

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

Чтобы устранить это препятствие, необходимо принять новый метод кодирования. Дилемма здесь заключается в том, что, поскольку в аналогичном разделе есть несколько величин, прототип неправильно оценит, что данные имеют один и тот же порядок, 0 < 1 < 2. Но это совсем не проблема. Чтобы смягчить эту трудность, мы используем один горячий энкодер.

Обязательно к прочтению: идеи проектов машинного обучения

Один горячий энкодер

One-Hot Encoding — еще один известный протокол для работы с категориальными переменными. Он устанавливает только следующие характеристики, установленные на объем различных значений в категориальном признаке. Целые отдельные значения в классификации будут увеличены в виде схемы. Одно горячее кодирование берет раздел с категориальными данными, в котором закодирована существующая метка, а затем разделяет раздел на множество разделов. Тома перестраиваются по 1 и 0, в расчете на то, какой раздел имеет какое значение.

Горячий кодер не поддерживает одномерные массивы. Вход всегда должен быть двумерным массивом.

Данные, утвержденные кодировщику, не должны содержать строк.

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

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

Но что произойдет, если у нас будет несколько файлов для обработки?

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

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

Читайте: Модели машинного обучения

Заключение

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

Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.

Какие алгоритмы требуют использования одного горячего кодирования?

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

Когда предпочтительнее использовать одно горячее кодирование в глубоком обучении?

One Hot Encoding — это мощный подход к преобразованию и предварительной обработке данных, который помогает моделям машинного обучения понимать предоставленные данные. В основном одно горячее кодирование используется, когда алгоритм ML не умеет работать с категориальными переменными, таким образом, одно горячее кодирование преобразует их в подходящий вид. Использование одного горячего кодирования является наиболее предпочтительным, когда признаки преобразуемых категориальных переменных не являются порядковыми. Кроме того, одно горячее кодирование эффективно работает, когда количество категориальных признаков, присутствующих в данном наборе данных, очень мало.

Что подразумевается под термином «ложная переменная ловушка»?

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