Кодирование категориальных данных для использования в машинном обучении | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №21 (311) май 2020 г.

Дата публикации: 20.05.2020

Статья просмотрена: 2769 раз

Библиографическое описание:

Синьков, Д. В. Кодирование категориальных данных для использования в машинном обучении / Д. В. Синьков, А. Д. Ваничкин. — Текст : непосредственный // Молодой ученый. — 2020. — № 21 (311). — С. 70-72. — URL: https://moluch.ru/archive/311/70393/ (дата обращения: 16.11.2024).



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

Ключевые слова: машинное обучение, нейронные сети, кодирование.

В большинстве алгоритмов машинного обучения набор данных может содержать текстовые или категориальные значения (в основном не числовые значения). Например, цвет, который имеет такие значения, как красный, оранжевый, синий, белый и т. д. Несколько алгоритмов, таких как CatBoost [1], могут достаточно хорошо обрабатывать категориальные значения, но большинство алгоритмов работают лучше с числовыми данными. Следовательно, основная задача, стоящая перед аналитиком, заключается в том, чтобы преобразовать текстовые/категориальные данные в числовые и при этом создать алгоритм/модель, чтобы из них получить необходимый результат.

Есть много способов преобразовать категориальные значения в числовые значения. Каждый подход имеет свои тонкости и влияет на набор функций модели. При этом я бы остановился на двух основных методах: One-Hot-Encoding(одна горячая кодировка) и Label-Encoder(кодирование меткой). Оба эти кодировщика являются частью библиотеки Scikit-learn (одной из наиболее широко используемых библиотек Python) и используются для преобразования текстовых или категориальных данных в числовые данные.

LabelEncoder

Этот подход очень прост и включает преобразование каждого значения в столбце в число. Рассмотрим набор данных (таблица 1), в котором описываются категориальные признаки мостов:

Таблица 1

Тип моста

Arch

Beam

Truss

Cantilever

Tied Arch

Suspension

Cable

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

Таблица 2

Тип моста (Текст)

Тип моста (Числовое значение)

Arch

0

Beam

1

Truss

2

Cantilever

3

Tied Arch

4

Suspension

5

Cable

6

На этом мы завершили кодирование метки переменной типа «Мост». Это все, что касается Label-Encoder. Но в зависимости от значений данных и типа данных кодирование меток создает новую проблему, так как использует последовательность чисел.

Проблема использования такого метода состоит в том, что они вводят сравнение между ними. Нет никакой связи между различными типами мостов, но, глядя на эти числа, можно подумать, что тип моста «Cable» имеет более высокий приоритет над типом моста «Arch». Алгоритм может неправильно понимать, что данные имеют какой-то порядок 0 <1 <2… <6 и могут придать «Cable» в 6 раз больший вес, чем типу моста «Arch».

Теперь рассмотрим таблицу 3, в которой содержится закодированная методом Label Encoder еще один набор данных, описывающей уровень безопасности мостов.

Таблица 3

Уровень безопасности (Текстовое значение)

Уровень безопасности (Числовое значение)

Никакой

0

Низкий

1

Средний

2

Высокий

3

Очень высокий

4

Кодирование Label-Encoder в этом столбце также вызывает приоритет по числу, но правильным способом. Здесь числовой порядок не выглядит нестандартным, и будет иметь смысл, если алгоритм интерпретирует порядок безопасности 0 <1 <2 <3 <4, т. е. никакой <низкий <средний <высокий <очень высокий [2].

One-Hot Encoder

Хотя Label-Encoder является прямолинейным, но у него есть недостаток, заключающийся в том, что числовые значения могут быть неверно истолкованы алгоритмами как имеющие некоторый порядок. Эта проблема упорядочения решается с помощью другого распространенного альтернативного подхода, называемого «One-Hot-Encoding». В этом алгоритме каждое значение категории преобразуется в новый столбец, и столбцу присваивается значение 1 или 0 (обозначение true / false). Давайте рассмотрим предыдущий пример типов мостов и уровней безопасности с One-Hot-Encoding (таблицы 4 и 5).

Таблица 4

Тип моста

(Текст)

Тип моста

(Arch)

Тип моста

(Beam)

Тип моста

(Truss)

Тип моста

(Cantilever)

Тип моста

(Tied Arch)

Тип моста

(Suspension)

Тип моста

(Cable)

Arch

1

0

0

0

0

0

0

Beam

0

1

0

0

0

0

0

Truss

0

0

1

0

0

0

0

Cantilever

0

0

0

1

0

0

0

Tied Arch

0

0

0

0

1

0

0

Suspension

0

0

0

0

0

1

0

Cable

0

0

0

0

0

0

1

Таблица 5

Уровень безопасности

(Текстовое значение)

Уровень безопасности

(Никакой)

Уровень безопасности

(Низкий)

Уровень безопасности

(Средний)

Уровень безопасности

(Высокий)

Уровень безопасности

(Очень высокий)

Никакой

1

0

0

0

0

Низкий

0

1

0

0

0

Средний

0

0

1

0

0

Высокий

0

0

0

1

0

Очень высокий

0

0

0

0

1

Строки с первым значением столбца (Arch/Никакой) будут иметь значение «1» (указывает на истинное значение), а столбцы других значений будут иметь значение «0» (указывающее на ложное значение). Аналогично для других строк сопоставляется значение со значением столбца.

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

Применение Label-Encoder иOne-Hot-Encoding

Выбор между Label-Encoder иOne-Hot-Encoding от вашего набора данных и модели, которую вы хотите применить. Но все же, несколько моментов, которые следует отметить, прежде чем выбрать правильную технику кодирования для вашей модели:

One-Hot Encoding, когда:

1) Категориальная особенность не является порядковой (как типы мостов в примере)

2) Небольшое количество категорий.

Label-Encoder, когда:

1) Категориальная особенность является порядковой (например, низкий, средний, высокий)

2) Количество категорий довольно велико, и One-Hot-Encoding может привести к высокому потреблению памяти.

Литература:

  1. Введение в разработку CatBoost. Доклад Яндекса [Электронный ресурс] / 2019г. — Режим доступа: https://habr.com/ru/company/yandex/blog/458790/
  2. ML | Label Encoding of datasets in Python [Электронный ресурс] / 2019г. — Режим доступа: https://www.geeksforgeeks.org/ml-label-encoding-of-datasets-in-python/
  3. What is One Hot Encoding? Why And When do you have to use it? [Электронный ресурс] / 2019г. — Режим доступа: https://hackernoon.com/what-is-one-hot-encoding-why-and-when-do-you-have-to-use-it-e3c6186d008f
Основные термины (генерируются автоматически): тип моста, машинное обучение, набор данных, большинство алгоритмов, данные, Числовое значение.


Похожие статьи

Анализ технологии создания систем классификации компьютерного зрения в медицине

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

Алгоритмы распознавания объектов

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

Алгоритмы кластеризации в машинном обучении

В статье рассматриваются основные алгоритмы кластеризации в машинном обучении.

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

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

Обзор инструментов для построения бизнес-процессов в различных нотациях

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

Искусственный интеллект и машинное обучение в дизайне продуктов питания

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

Роль больших данных в глубинном обучении

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

Разработка систем рекомендаций на основе Big Data

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

Формализация требований для средств разработки и обучения нейронных сетей

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

Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации

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

Похожие статьи

Анализ технологии создания систем классификации компьютерного зрения в медицине

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

Алгоритмы распознавания объектов

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

Алгоритмы кластеризации в машинном обучении

В статье рассматриваются основные алгоритмы кластеризации в машинном обучении.

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

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

Обзор инструментов для построения бизнес-процессов в различных нотациях

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

Искусственный интеллект и машинное обучение в дизайне продуктов питания

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

Роль больших данных в глубинном обучении

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

Разработка систем рекомендаций на основе Big Data

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

Формализация требований для средств разработки и обучения нейронных сетей

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

Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации

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

Задать вопрос