Рубрики
Без рубрики

Одно горячее кодирование в Python – практический подход

Здравствуйте, читатели! В этой статье мы будем сосредоточены на практической реализации одного горячего кодирования в Python.

Автор оригинала: Pankaj Kumar.

Одно горячее кодирование в Python – практический подход

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

Итак, давайте начнем!

Во-первых, что такое одно горячее кодирование?

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

Переменные отличаются на две основные части

  1. Непрерывные переменные : Это переменные, которые изображают числовые переменные. Пример: [1,2,3,4,5,6 ….100]
  2. Категорические переменные : Эти переменные изображают категорию или группы в значениях данных. Пример: [Apple, Mango, Berry]

В наборе данных мы столкнулись с данными, которые содержат категорические данные в виде групп, таких как [Apple, Berry, Mango]. Чтобы представлять каждую категорию данных в качестве отдельного объекта, мы используем методы кодирования.

Самые популярные методы кодирования включают в себя

  • Фиктивные переменные
  • Кодировка на этикетке
  • Одно горячее кодирование , так далее.

Сегодня давайте обсудим об одном горячем кодировке.

Одна горячая кодировка представляет категорические данные в виде двоичных векторов.

Теперь вопрос может возникнуть в ваших умах, то когда он представляет категории в двоичном векторном формате, то когда он получает данные, преобразованные в 0 и 1 и 1-е годы?

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

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

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

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

Одно горячие примеры реализации кодирования

Рассмотрим набор данных с категориальными данными как [Apple and Berry]. После нанесения на этикетку кодировку, давайте скажем, что он назначит Apple как «0» и ягод как «1».

Кроме того, при нанесении одностороннего кодирования он создаст двоичный вектор длины 2. Здесь создан «Apple», которая закодируется как «0», будет иметь двоичный вектор, что и [1,0].

Это связано с тем, что значение 1 будет помещено в закодированный индекс, который равен нулю для Apple (как видно в кодировке метки).

Итак, [Apple, Berry, Berry] будет закодирована как:

[1, 0] [0, 1] [0, 1]

Давайте теперь реализуем концепцию в результате примеров.

Пример 1: одно горячее кодирование с группированными категориальными данными

Посмотрите на нижеприведенный пример! Мы кодировали категорию фруктов с одной горячей кодировкой.

from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder


cat_data = ["apple", "mango", "apple", "berry", "mango", "apple", "berry", "apple"]


label = LabelEncoder()
int_data = label.fit_transform(cat_data)
int_data = int_data.reshape(len(int_data), 1)

onehot_data = OneHotEncoder(sparse=False)
onehot_data = onehot_data.fit_transform(int_data)
print("Categorical data encoded into integer values....\n")
print(onehot_data)

Выход:

Categorical data encoded into integer values....

[[1. 0. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [0. 1. 0.]
 [1. 0. 0.]]

Объяснение:

  1. После нагрузки данных мы создали объект LabelenCoder () Чтобы вообще кодировать категорические данные в целочисленные значения.
  2. Кроме того, мы бы передали те же целые данные для Onehotencoder () Чтобы кодировать целочисленные значения в двоичные векторы категорий.
  3. fit_transform () Функция применяет конкретную функцию для выполнения данных или набора значений.

Пример 2: Одно горячее кодирование на наборе данных

В этом примере мы вытащили набор данных в среду Python. Вы можете найти набор данных ниже для вашей справки.

OneHot Encode DataSet

Кроме того, мы использовали ColumnTransformer () Функция для создания объекта, указывающего категорию 0 в качестве первого столбца из N-категории.

Наконец, мы применили его к всеми категориальным данным, подлежащим кодированию в форме двоичного массива.

Давайте импортируем библиотеки Pandas и Numpy.

import pandas
import numpy
from sklearn.preprocessing import OneHotEncoder 
from sklearn.compose import ColumnTransformer 

cat_data = pandas.read_csv("bank-loan.csv")
#print(cat_data)

column_set = ColumnTransformer([('encoder', OneHotEncoder(),[0])], remainder='passthrough') 
  
onehot_data = numpy.array(column_set.fit_transform(cat_data), dtype = numpy.str) 

print(onehot_data)

Выход:

Итак, вы видите, данные теперь содержат два столбца: первый столбец изображает 0-й категорию и второй столбец изображает 1-й категорию.

[['0.0' '1.0']
 ['1.0' '0.0']
 ['1.0' '0.0']
 ...
 ['1.0' '0.0']
 ['1.0' '0.0']
 ['1.0' '0.0']]

Заключение

По этому, мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом. До этого оставайся настроенным и счастливым обучением !! 🙂.