Jak wykonać kodowanie etykiet w pythonie (z przykładem)


Często w uczeniu maszynowym chcemy przekonwertować zmienne kategoryczne na jakiś format liczbowy, który może być łatwo wykorzystany przez algorytmy.

Jednym ze sposobów osiągnięcia tego jest użycie kodowania etykiet , które przypisuje każdej wartości kategorycznej wartość całkowitą w oparciu o porządek alfabetyczny.

Na przykład poniższy zrzut ekranu pokazuje, jak przekonwertować każdą unikalną wartość zmiennej kategorialnej o nazwie Zespół na wartość całkowitą w oparciu o kolejność alfabetyczną:

Aby wykonać kodowanie etykiet w Pythonie, możesz użyć następującej składni:

 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 '])

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: kodowanie etykiet w Pythonie

Załóżmy, że mamy następującą ramkę DataFrame pand:

 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

Możemy użyć poniższego kodu, aby wykonać kodowanie etykiet w celu przekonwertowania każdej wartości kategorycznej w kolumnie zespołu na wartość całkowitą:

 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

Z wyniku możemy zobaczyć:

  • Każda wartość „A” została przekonwertowana na 0 .
  • Każda wartość „B” została przekonwertowana na 1 .
  • Każdą wartość „C” przeliczono na 2 .

Pamiętaj, że możesz także użyć funkcji inverse_transform() , aby uzyskać oryginalne wartości kolumny zespołu :

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

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

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w Pythonie:

Jak przekonwertować zmienną kategorialną na numeryczną w Pandach
Jak przekonwertować wartości logiczne na wartości całkowite w Pandach
Jak używać Factorize() do kodowania ciągów znaków jako liczb w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *