Codifica delle Variabili Categoriali
Le variabili categoriche sono caratteristiche nei dati che rappresentano categorie anziché valori numerici. Esempi includono colori come "red", "green" e "blue", oppure etichette come "yes" e "no". Gli algoritmi di apprendimento automatico richiedono che i dati di input siano numerici, quindi è necessario convertire queste variabili categoriche in un formato numerico prima di utilizzarle nei modelli. Questo processo si chiama codifica e garantisce che gli algoritmi possano interpretare e apprendere efficacemente dai dati.
La one-hot encoding crea una nuova colonna binaria per ciascuna categoria di una variabile categorica. Ogni osservazione riceve un 1 nella colonna corrispondente alla propria categoria e 0 altrove.
12345678910111213import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
L'encoding delle etichette assegna a ciascuna categoria unica in una variabile un valore intero, trasformando le etichette di testo in numeri.
123456789101112import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
L'order encoding assegna valori interi ordinati alle categorie in base alla loro classifica naturale. Questo metodo preserva l'ordine intrinseco nelle variabili categoriche ordinali, come i livelli di istruzione ("high school", "bachelor", "master", "doctorate").
123456789101112131415161718import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
Prestare attenzione durante la codifica delle variabili categoriche. La codifica one-hot può introdurre il problema delle variabili fittizie - una situazione in cui le caratteristiche sono altamente correlate, il che può confondere alcuni modelli. Per evitarlo, è possibile eliminare una delle colonne fittizie. La codifica delle etichette impone una relazione ordinale tra le categorie, che potrebbe non essere appropriata per dati nominali.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain the difference between one-hot encoding and label encoding?
When should I use ordered categorical encoding instead of one-hot or label encoding?
Can you show more examples of encoding categorical variables?
Awesome!
Completion rate improved to 8.33
Codifica delle Variabili Categoriali
Scorri per mostrare il menu
Le variabili categoriche sono caratteristiche nei dati che rappresentano categorie anziché valori numerici. Esempi includono colori come "red", "green" e "blue", oppure etichette come "yes" e "no". Gli algoritmi di apprendimento automatico richiedono che i dati di input siano numerici, quindi è necessario convertire queste variabili categoriche in un formato numerico prima di utilizzarle nei modelli. Questo processo si chiama codifica e garantisce che gli algoritmi possano interpretare e apprendere efficacemente dai dati.
La one-hot encoding crea una nuova colonna binaria per ciascuna categoria di una variabile categorica. Ogni osservazione riceve un 1 nella colonna corrispondente alla propria categoria e 0 altrove.
12345678910111213import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
L'encoding delle etichette assegna a ciascuna categoria unica in una variabile un valore intero, trasformando le etichette di testo in numeri.
123456789101112import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
L'order encoding assegna valori interi ordinati alle categorie in base alla loro classifica naturale. Questo metodo preserva l'ordine intrinseco nelle variabili categoriche ordinali, come i livelli di istruzione ("high school", "bachelor", "master", "doctorate").
123456789101112131415161718import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
Prestare attenzione durante la codifica delle variabili categoriche. La codifica one-hot può introdurre il problema delle variabili fittizie - una situazione in cui le caratteristiche sono altamente correlate, il che può confondere alcuni modelli. Per evitarlo, è possibile eliminare una delle colonne fittizie. La codifica delle etichette impone una relazione ordinale tra le categorie, che potrebbe non essere appropriata per dati nominali.
Grazie per i tuoi commenti!