Как выполнить кодирование меток в 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