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

Припустімо, що у нас є такий фрейм даних 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

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

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