Найти в Дзене
Властелин машин

Числовое кодирование категориальных переменных

Рассмотрим способ числового кодирования колонок датафрейма, имеющих небольшой набор значений. В частности, распространено порядковое кодирование, которое каждой категории ставит в соответствие целое число 0, 1, ...,число_категорий -1. Обратите внимание, что после такого кодирования признак приобретает упорядоченность (например, 5>3 и отличается на 2), и если будет интерпретироваться не как категориальный, а числовой может дезориентировать модель машинного обучения (в этом случае лучше использовать onehot кодирование). Порядковое кодирование реализуется классом OrdinalEncoder модуля sklearn.preprocessing. Рассмотрим его работу на следующем датафрейме: С помощью OrdinalEncoder трансформации можно подвергать сразу несколько столбцов: В свойстве categories_ хранятся массивы с выделенными в ходе fit-а категориями: А так можно получить трансформированный датафрейм и дать ему осмысленные названия колонок: С методом inverse_transform можно обратно трансформировать числа в наименований категори

Рассмотрим способ числового кодирования колонок датафрейма, имеющих небольшой набор значений. В частности, распространено порядковое кодирование, которое каждой категории ставит в соответствие целое число 0, 1, ...,число_категорий -1. Обратите внимание, что после такого кодирования признак приобретает упорядоченность (например, 5>3 и отличается на 2), и если будет интерпретироваться не как категориальный, а числовой может дезориентировать модель машинного обучения (в этом случае лучше использовать onehot кодирование).

Порядковое кодирование реализуется классом OrdinalEncoder модуля sklearn.preprocessing. Рассмотрим его работу на следующем датафрейме:

С помощью OrdinalEncoder трансформации можно подвергать сразу несколько столбцов:

-2

В свойстве categories_ хранятся массивы с выделенными в ходе fit-а категориями:

-3

А так можно получить трансформированный датафрейм и дать ему осмысленные названия колонок:

-4

С методом inverse_transform можно обратно трансформировать числа в наименований категорий:

-5
-6