Come eseguire la codifica delle etichette in python (con esempio)
Spesso nell’apprendimento automatico vogliamo convertire le variabili categoriali in un tipo di formato numerico che possa essere facilmente utilizzato dagli algoritmi.
Un modo per farlo è utilizzare la codifica delle etichette , che assegna a ciascun valore categoriale un valore intero in base all’ordine alfabetico.
Ad esempio, la schermata seguente mostra come convertire ciascun valore univoco di una variabile categoriale denominata Team in un valore intero in base all’ordine alfabetico:
È possibile utilizzare la seguente sintassi per eseguire la codifica delle etichette in 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 '])
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: codificare etichette in Python
Supponiamo di avere i seguenti panda 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
Possiamo utilizzare il seguente codice per eseguire la codifica delle etichette per convertire ogni valore categoriale nella colonna del team in un valore intero:
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
Dal risultato possiamo vedere:
- Ogni valore “A” è stato convertito in 0 .
- Ogni valore “B” è stato convertito in 1 .
- Ogni valore “C” è stato convertito in 2 .
Tieni presente che puoi anche utilizzare la funzione inverse_transform() per ottenere i valori originali della colonna della squadra :
#display original team labels lab. inverse_transform (df[' team ']) array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in Python:
Come convertire una variabile categoriale in numerica in Pandas
Come convertire valori booleani in valori interi in Panda
Come utilizzare factorize() per codificare stringhe come numeri in Pandas