Як виконати кодування міток у 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

Припустімо, що у нас є наступні pandas DataFrame:

 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() , щоб отримати вихідні значення стовпця team :

 #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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *