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

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

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

Авторы: ,

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

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

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

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

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

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



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

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

В большинстве алгоритмов машинного обучения набор данных может содержать текстовые или категориальные значения (в основном не числовые значения). Например, цвет, который имеет такие значения, как красный, оранжевый, синий, белый и т. д. Несколько алгоритмов, таких как 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
Основные термины (генерируются автоматически): тип моста, машинное обучение, набор данных, Числовое значение, большинство алгоритмов, данные.


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

Применение машинного обучения для обнаружения сетевых...

Машинное обучение может построить необходимую модель автоматически на основе некоторых обучающих данных.

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

Использование методов и основных алгоритмов в технологии...

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

Использование кодеков в подготовке исходных данных для...

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

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

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

Многие типы данных можно рассматривать не как набор чисел и символов

· Отсутствие данных – происходят по причине отсутствия у оператора соответствующих данных при вводе информации.

· Логически неверные данные (в поле "Город" находится значение "Россия").

Роль больших данных в глубинном обучении | Статья в журнале...

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

Искусственный интеллект и большие данные | Статья в журнале...

Машинное обучение (machine learning-ML) — это обширный подраздел AI, изучающий методы построения самообучающихся моделей. Интеллектуальный анализ данных использует методы ML для извлечения нетривиальной и потенциально полезной информации из огромных...

Анализ применения гомоморфных схем шифрования...

Основные термины (генерируются автоматически): машинное обучение, пространство сообщений, алгоритм, данные

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

Адаптация алгоритма k-means clustering для Big Data анализа

Массивные наборы данных не всегда сложны, а небольшие наборы данных всегда просты

Для качественного анализа входящего потока данных необходимо использовать алгоритмы.

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

Методы распознавания образов | Статья в журнале...

Поле фильтрации на выходе получается набор данных поддающихся обработке.

Методы машинного обучения и принятия решений являются финальной стадией в распознавании образов.

Существует два типа обучения: на основе человеческий знаний, перенесенных в...

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

Применение машинного обучения для обнаружения сетевых...

Машинное обучение может построить необходимую модель автоматически на основе некоторых обучающих данных.

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

Использование методов и основных алгоритмов в технологии...

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

Использование кодеков в подготовке исходных данных для...

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

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

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

Многие типы данных можно рассматривать не как набор чисел и символов

· Отсутствие данных – происходят по причине отсутствия у оператора соответствующих данных при вводе информации.

· Логически неверные данные (в поле "Город" находится значение "Россия").

Роль больших данных в глубинном обучении | Статья в журнале...

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

Искусственный интеллект и большие данные | Статья в журнале...

Машинное обучение (machine learning-ML) — это обширный подраздел AI, изучающий методы построения самообучающихся моделей. Интеллектуальный анализ данных использует методы ML для извлечения нетривиальной и потенциально полезной информации из огромных...

Анализ применения гомоморфных схем шифрования...

Основные термины (генерируются автоматически): машинное обучение, пространство сообщений, алгоритм, данные

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

Адаптация алгоритма k-means clustering для Big Data анализа

Массивные наборы данных не всегда сложны, а небольшие наборы данных всегда просты

Для качественного анализа входящего потока данных необходимо использовать алгоритмы.

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

Методы распознавания образов | Статья в журнале...

Поле фильтрации на выходе получается набор данных поддающихся обработке.

Методы машинного обучения и принятия решений являются финальной стадией в распознавании образов.

Существует два типа обучения: на основе человеческий знаний, перенесенных в...

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