Быстрое кодирование в Python

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

Быстрое кодирование — это, по сути, представление категориальных переменных в виде двоичных векторов. Эти категориальные значения сначала сопоставляются с целочисленными значениями. Каждое целочисленное значение затем представляется как двоичный вектор, состоящий только из нулей ( кроме индекса целого числа, который отмечен как 1).

Ручное быстрое кодирование

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

 import numpy as np ### Категориальные данные для преобразования в числовые datacolors = ["красный", "зеленый", "желтый", "красный", "синий"] ### Универсальный список colorstotal_colors  = ["красный", "зеленый", "синий", "черный", "желтый"] ### сопоставить каждый цвет с целочисленным отображением = {} для x в диапазоне (len (total_colors)): сопоставление [total  _colors [x]] = xone_hot_encode = [] для c в цветах: arr = list (np.zeros (len (total_colors), dtype = int)) arr [mapping [c]] = 1 one_hot_encode.append (arr) print (  one_hot_encode) 

Быстрое кодирование с использованием scikit-learn

Взгляните на приведенный ниже пример. Он использует библиотеку scikit-learn для быстрого кодирования:

 из sklearn.preprocessing import LabelEncoderfrom sklearn.preprocessing import OneHotEncoder ### Категориальные данные для преобразования в числовые datacolors = (["красный"  , "зеленый", "желтый", "красный", "синий"]) ### целочисленное отображение с использованием LabelEncoderlabel_encoder = LabelEncoder () integer_encoded = label_encoder.fit_transform (colors) print (integer_encoded) integer_encoded = integer_encoded. reshape (len (integer_encoded), 1) ### Одна горячая кодировкаonehot_encoder = OneHotEncoder (sparse = False) onehot_encoded = onehot_encoder.fit_transform (integer_encoded) print (onehot_encoded) 

Оцените статью
nanomode.ru
Добавить комментарий