Scikit-learn: utilizza la codifica delle etichette su più colonne
Nell’apprendimento automatico, la codifica delle etichette è il processo di conversione dei valori di una variabile categoriale in valori interi.
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:
Puoi utilizzare la seguente sintassi per eseguire la codifica di etichette su più colonne in Python:
from sklearn. preprocessing import LabelEncoder #perform label encoding on col1, col2 columns df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: codificare etichette in Python
Supponiamo di avere il seguente DataFrame panda che contiene informazioni su vari giocatori di basket:
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
Possiamo utilizzare il seguente codice per eseguire la codifica delle etichette per convertire ogni valore categoriale nelle colonne team , position e all_star in valori interi:
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
Dal risultato, possiamo vedere che ogni valore delle colonne team , position e all_star è stato convertito in valori interi.
Ad esempio, nella colonna squadra possiamo vedere:
- Ogni valore “A” è stato convertito in 0 .
- Ogni valore “B” è stato convertito in 1 .
- Ogni valore “C” è stato convertito in 2 .
- Ogni valore “D” è stato convertito in 3 .
Tieni presente che in questo esempio abbiamo eseguito la codifica delle etichette su tre colonne del DataFrame, ma possiamo utilizzare una sintassi simile per eseguire la codifica delle etichette su tutte le colonne categoriali che desideriamo.
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