Scikit-learn: используйте кодирование меток из нескольких столбцов


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

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

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

 from sklearn. preprocessing import LabelEncoder

#perform label encoding on col1, col2 columns
df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )

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

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

Предположим, у нас есть следующий DataFrame pandas, содержащий информацию о различных баскетболистах:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
                   ' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
                   ' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
                   ' points ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12

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

 from sklearn. preprocessing import LabelEncoder

#perform label encoding across team, position, and all_star columns
df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform )

#view udpated DataFrame
print (df)

   team position all_star points
0 0 1 1 11
1 0 0 0 8
2 1 1 1 10
3 1 0 1 6
4 1 0 1 6
5 2 1 0 5
6 2 1 1 9
7 3 0 0 12

Из результата мы видим, что каждое значение столбцов Team , Position и all_star было преобразовано в целочисленные значения.

Например, в столбце команды мы видим:

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

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

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

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

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

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

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