Введение:

В этой статье я представляю Feature Encoding от Basic к Advanced.

Кодировка функции:

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

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

Категориальные признаки обычно делятся на 2 типа:

1.Номинальные категориальные характеристики:

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

2.Порядковый категориальный признак:

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

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

Для обработки порядковых категориальных признаков:

1.Кодирование метки или целочисленное кодирование

2. Порядковое кодирование

3. Целевое управляемое порядковое кодирование или упорядоченное кодирование

4. Среднее управляемое порядковое кодирование

Примечание. Направление по целевому и среднему значениям относится к управляемому порядковому кодированию.

5. Редкое кодирование меток

6. Кодировка LabelCount

Для обработки номинальных категориальных характеристик:

1. Одно горячее кодирование

2. Одно горячее кодирование с несколькими категориями

3.Фиктивное кодирование

4. Двоичное кодирование

5. Частота или количество кодировок

6. Среднее или целевое кодирование или кодирование правдоподобия

7.Оставьте одно кодирование

8.K Свернуть целевое кодирование или оставить свернутое кодирование

9. Кодирование M-оценки

10.Весность доказательств Кодирование

11.Кодирование хеширования

12. Кодировка Джеймса Штейна

13. Базовое N-кодирование

14. Кодирование CatBoost

15.Квантильный кодировщик

16.СумЭнкодер

17. Полиномиальный кодировщик

18.HelmertEncoder

19.GLMMEncoder

20. Обратный разностный кодировщик

Для обработки порядковых категориальных признаков:

1.Кодировка ярлыка:

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

При кодировании меток каждой категории или метке присваивается значение от 0 до n-1.

тогда как n - это номер категории, присутствующей в этом столбце.

Например: рассмотрим пример, приведенный ниже, и примените LabelEncoder.

[Правильный или фактический порядок: очень холодный, холодный, теплый]

После применения Label Encoding к приведенному выше столбцу мы получим

[но порядок кодирования меток: холодный, очень холодный, теплый]

Таким образом, Label Encoder присвоит значение от 0 до 2 (n-1 = 3–1 = 2) на основе первой буквы каждой метки (в алфавитном порядке).

Недостатки или проблема:

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

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

2. Это никогда не работает очень хорошо для моделей на основе дерева.

Решение первой проблемы:

Чтобы исправить вышеуказанную проблему, мы используем «Порядковое кодирование в библиотеке Category_encoders», а не из библиотеки Sklearn.

2.Порядковое кодирование:

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

предположим, что если вы используете порядковый кодировщик из Sklearn, то работа с порядковым кодированием такая же, как и с кодировкой меток в sklearn.

ПРИМЕЧАНИЕ. В библиотеке category_encoders нет «кодировщика меток», кодировщик меток присутствует только в файле sklearn.

3. Целевое управляемое кодирование или упорядоченное кодирование.

Как следует из названия, для кодирования категорий или меток используется целевая или выходная переменная. Он используется для порядковых категориальных признаков.

Он присваивает значения от 0 до N-1 для меток в столбце.

Алгоритм:

1. Сначала он рассчитает среднее значение для каждой метки в объекте, используя целевые значения.

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

3. Затем мы присвоим значения от N-1 до 0 (если вы используете нисходящий порядок) или от 0 до N-1 (если вы используете восходящий порядок) для отсортированного порядка.

Например: давайте возьмем набор данных ниже, и здесь мы используем порядок убывания.

шаг 1:

Среднее значение для этикетки 1 (BE) = 200 + 150/2 = 175

Среднее значение для ярлыка 2 (мастера) = 500/1 = 500

Среднее значение для этикетки 1 (BE) = 15000 + 999 + 1000/3 = 1116

шаг 2:

Порядок убывания на основе среднего значения

PHD, магистры, B.E.

Шаг 3: Затем мы присвоим значения от N-1 до 0 (если вы используете порядок по убыванию):

Здесь N равно 3.

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

Преимущества:

1. Простота реализации

2. Не расширяет функциональное пространство

3.Создает монотонную связь между категориями и целью

Недостатки:

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

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

Например: давайте возьмем тот же пример выше, а также еще одну функцию, называемую «Местоположение».

поэтому, если вы рассчитаете среднее значение заработной платы каждого ярлыка, вы получите

Среднее значение для этикетки 1 (BE) = 200 + 20000/2 = 10100

Среднее значение для ярлыка 2 (мастера) = 500/1 = 500

Среднее значение для этикетки 1 (BE) = 15000 + 999 + 1000/3 = 1116

А если присвоить значения, то получится

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

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

3. Нет библиотеки для выполнения этого метода.

4. Может привести к переоснащению из-за того, что информация от цели просочилась в независимые переменные, что называется «утечкой данных о цели», что приводит к переоснащению.

3.Кодирование среднего управляемого целевого значения:

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

Направление по целевому и среднему значениям почти одинаково, но показывает разницу в применении или кодировании категорий или меток.

Алгоритм:

1. Сначала он рассчитает среднее значение для каждой метки в функции, используя целевые значения.

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

Например: возьмем приведенный ниже набор данных.

шаг 1:

Среднее значение для этикетки 1 (BE) = 200 + 150/2 = 175

Среднее значение для ярлыка 2 (мастера) = 500/1 = 500

Среднее значение для этикетки 1 (BE) = 15000 + 999 + 1000/3 = 1116

Шаг 2: Затем присвойте каждой метке среднее значение соответствующей метки.

Недостатки:

1. Те ​​же недостатки, что и у целевого управляемого порядкового кодирования.

5. Кодировка Rare Label:

Как следует из названия, он дает имя «Редкое или заданное пользователем имя» для меток, частота появления которых меньше порогового значения (установленного нами) в этой категориальной функции, а затем мы выполняем любое другое категориальное кодирование.

Кодировка 6.LabelCount:

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

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