Как выполнить кодирование меток в python (с примером)


Часто в машинном обучении мы хотим преобразовать категориальные переменные в какой-то числовой формат, который может быть легко использован алгоритмами.

Один из способов сделать это — использовать кодировку меток , которая присваивает каждому категориальному значению целочисленное значение в алфавитном порядке.

Например, на следующем снимке экрана показано, как преобразовать каждое уникальное значение категориальной переменной Team в целочисленное значение в алфавитном порядке:

Вы можете использовать следующий синтаксис для кодирования меток в Python:

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' my_column '] = lab. fit_transform (df[' my_column '])

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: кодирование меток в Python

Предположим, у нас есть следующий DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29]})

#view DataFrame
print (df)

  team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29

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

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' team '] = lab. fit_transform (df[' team '])

#view updated DataFrame
print (df)

   team points
0 0 25
1 0 12
2 1 15
3 1 14
4 1 19
5 1 23
6 2 25
7 2 29

По результату мы видим:

  • Каждое значение «A» было преобразовано в 0 .
  • Каждое значение «B» было преобразовано в 1 .
  • Каждое значение «C» было преобразовано в 2 .

Обратите внимание, что вы также можете использовать функцию inverse_transform() для получения исходных значений столбца команды :

 #display original team labels
lab. inverse_transform (df[' team '])

array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи на Python:

Как преобразовать категориальную переменную в числовую в Pandas
Как преобразовать логические значения в целочисленные значения в Pandas
Как использовать Factorize() для кодирования строк как чисел в Pandas

Добавить комментарий

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