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
Fantastico!
Completion tasso migliorato a 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!