Введение в работу с категориальными данными в машинном обучении с использованием метода One-Hot Encoding.

Оглавление

  1. Введение
  2. Что такое горячее кодирование?
  3. Преимущества недостатки
  4. Варианты использования горячего кодирования
  5. Заключение
  6. Рекомендации

1. Введение

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

Представьте, что у нас есть набор данных с названиями городов в качестве одной из характеристик (например: «Дубай», «Катар», «Лондон» и «Токио»). Наша цель — использовать эту информацию в нашей регрессионной модели. Однако названия городов имеют категориальный формат, и если мы не закодируем эту функцию, наш алгоритм машинного обучения не сможет их правильно обработать. Другими словами, он может рассматривать «Дубай» как числовое значение, что, очевидно, не имеет никакого смысла. Вот почему, преобразовывая категориальные данные в числовой формат, мы даем машине возможность осмысленно обрабатывать и понимать данные.

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

2. Что такое горячее кодирование?

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

Во-первых, мы создадим таблицу, в столбцах которой будут названия фруктов, которые есть в нашем списке покупок. Затем мы пройдемся по каждому фрукту в списке покупок и поставим «1» в столбец, соответствующий типу фруктов, который мы хотим купить, и «0» во все остальные столбцы. Например, если первым фруктом в списке покупок является «яблоко», мы поместим «1» в столбец с надписью «яблоко» и «0» во все остальные столбцы в этой конкретной строке. Затем мы повторяем процесс снова для каждой строки в списке покупок. Обратитесь к изображению ниже, чтобы лучше понять процесс кодирования:

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

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

3. Преимущества и недостатки

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

Во-первых, давайте начнем с преимуществ горячего кодирования:

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

Тем не менее, следующий метод имеет свои ограничения, о которых должен знать каждый инженер:

  • Увеличивает размерность: однократное кодирование может привести к большому количеству столбцов в закодированном наборе данных, что может потребовать больших вычислительных ресурсов и большего объема памяти.
  • Может привести к переобучению: горячее кодирование может создать большое количество столбцов с разреженными данными, что может привести к переобучению (т. е. модель хорошо подходит к обучающим данным и не делает вывод о новых данных).
  • Игнорирует отношения между категориями: Горячее кодирование рассматривает каждую категорию как независимую и не фиксирует никаких отношений или зависимостей между категориями. Это может быть недостатком, если существуют важные взаимосвязи между категориями, которые необходимо учитывать.

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

4. Варианты использования горячего кодирования

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

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

5. Вывод

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

6. Ссылки

  1. Жерон, А. (2019). Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow: концепции, инструменты и методы создания интеллектуальных систем (2-е изд.). О'Райли Медиа.
  2. Митчелл, Р. (2020). Машинное обучение: практическое руководство для разработчиков и технических специалистов. Пирсон.
  3. Раза, К., Рехман, З.У., и Амин, Ф.У. (2018). Методы кодирования категориальных признаков и их применение в машинном обучении. Препринт arXiv arXiv: 1811.09055.