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