Кодирование категориальных признаков: пошаговое руководство на python!
Кодирование категориальных признаков
Кодирование категориальных признаков - важный этап предварительной обработки данных. Кодирование категориальных признаков - это процесс преобразования категориальных признаков в числовые признаки. Категориальные переменные также называются качественными переменными. Результаты, полученные с помощью модели, различаются при использовании различных методов кодирования.
Существуют два типа категориальных признаков:
- Порядковые характеристики
- Номинальные характеристики
Порядковые характеристики:
- Порядковые элементы - это элементы, которым присуще упорядочение.
- Например: такие оценки, как "Хорошо", "Плохо".
Номинальные характеристики:
- Номинальные элементы - это элементы, которые не имеют никакого внутреннего упорядочивания, в отличие от порядковых элементов.
- Например: имена людей, пол, да или нет.
Необходимость кодирования категориальных признаков
- Категориальные признаки необходимо закодировать, прежде чем передавать их в модель, потому что многие алгоритмы машинного обучения не поддерживают категориальные признаки в качестве входных данных.
- Алгоритмы машинного обучения и алгоритмы глубокого обучения будут поддерживать только числовые переменные / количественные переменные.
Методы порядкового кодирования
- Кодирование метки или порядковое кодирование
Номинальные методы кодирования
- Частотное кодирование
- Целевое кодирование
- Быстрое кодирование
- Оставить одну кодировку
- M-оценка кодирования
Загрузите необходимые библиотеки
Порядковое кодирование
1. Порядковое кодирование с использованием OrdinalEncoder в научно-учебном пособии.
OrdinalEncoder используется для присвоения числовых значений категориям в порядковых элементах.
2. Порядковое кодирование с использованием LabelEncoder в научно-учебном пособии.
LabelEncoder также даст тот же результат, что и OrdinalEncoder.
Номинальная кодировка
1. Кодирование частоты
При частотном кодировании каждая из категорий в функции заменяется частотами категорий.
Категория относится к каждому уникальному значению объекта.
- Частота (категория) = количество значений в этой категории.
- Размер (данные) = Размер всего набора данных.
Недостаток: если две категории имеют одинаковую частоту, их трудно различить.
2. Целевое кодирование
В целевой кодировке каждая из категорий заменяется средним значением целевой переменной. Целевое кодирование - один из наиболее часто используемых методов категориального кодирования в Kaggle.
- Целевая кодировка = среднее (цель категории)
Недостаток: данные имеют тенденцию к перегрузке, если некоторые категории имеют малое количество вхождений.
3. Одноразовое кодирование
One Hot Encoding заменяет категории двоичными значениями. Количество объектов «N» создается, если уникальные значения в функции равны «N».
Недостатки:
- Древовидные алгоритмы не могут применяться к данным с горячим кодированием, поскольку они создают разреженную матрицу.
- Когда функция содержит слишком много уникальных значений, создается такое количество функций, что может привести к переобучению.
4. Оставьте единственную кодировку.
Leave One Out Encoding (LOOE) очень похожа на Target Encoding, но разница в том, что LOOE не учитывает текущую строку при вычислении среднего целевого.
Недостаток: имеет тенденцию чрезмерно соответствовать данным.
5. Кодирование M-оценки
M-Estimate Encoding также называется аддитивным сглаживанием, которое преодолевает недостатки целевого кодирования (переобучения), учитывая коэффициент сглаживания M для кодирования.
Найдите это сообщение в моем блокноте Kaggle: https://www.kaggle.com/srivignesh/categorical-feature-encoding-techniques
Ссылки:
[1] Патрисио Серда, Гаэль Вароко и Бальазс Кегль, Кодирование подобия для обучения с грязными категориальными переменными (2018).
Свяжитесь со мной в LinkedIn, Twitter!
Удачного машинного обучения !!