Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Codifica delle Caratteristiche Categoriche | Concetti Fondamentali
Analisi dei Cluster

bookCodifica delle Caratteristiche Categoriche

Gli algoritmi di clustering come K-means richiedono dati numerici. Le caratteristiche categoriche devono essere convertite in forma numerica tramite codifica. Verranno trattati la codifica ordinale e la one-hot encoding.

Codifica Ordinale

La codifica ordinale trasforma categorie ordinate in valori numerici, preservando il loro ordine gerarchico. Ad esempio, la codifica ordinale della colonna 'education_level' trasformerà i suoi valori da "High School", "Bachelor's", "Master's", 'PhD' a 0, 1, 2, 3.

Questo presuppone una differenza numerica significativa tra i valori codificati, che potrebbe non essere sempre corretta.

from sklearn.preprocessing import OrdinalEncoder

education_levels = [['High School',
                     "Bachelor's",
                     "Master's",
                     "PhD"]]
encoder = OrdinalEncoder(categories=education_levels)

df[['education_encoded']] = encoder.fit_transform(df[['education_level']]) 

One-Hot Encoding

La one-hot encoding trasforma categorie nominali (non ordinate) in colonne binarie, dove ogni categoria diventa una nuova colonna. Per una caratteristica con n categorie, vengono generalmente create n colonne — una colonna vale 1 per la categoria corrispondente, le altre valgono 0. Tuttavia, sono sufficienti solo n-1 colonne per rappresentare l'informazione senza ridondanza.

Ad esempio, una colonna 'color' con valori 'red', 'blue' e 'green' può essere codificata con solo due colonne: 'color_red' e 'color_blue'. Se una riga ha 0 in entrambe, significa che il colore è 'green'. Eliminando una colonna si evita la ridondanza.

La rimozione della colonna ridondante si specifica tramite drop='first':

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
question mark

Quale metodo di codifica è più adatto per una variabile categorica come 'country' con valori come "USA", "Canada" e "Germany", dove non esiste un ordine naturale?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.94

bookCodifica delle Caratteristiche Categoriche

Scorri per mostrare il menu

Gli algoritmi di clustering come K-means richiedono dati numerici. Le caratteristiche categoriche devono essere convertite in forma numerica tramite codifica. Verranno trattati la codifica ordinale e la one-hot encoding.

Codifica Ordinale

La codifica ordinale trasforma categorie ordinate in valori numerici, preservando il loro ordine gerarchico. Ad esempio, la codifica ordinale della colonna 'education_level' trasformerà i suoi valori da "High School", "Bachelor's", "Master's", 'PhD' a 0, 1, 2, 3.

Questo presuppone una differenza numerica significativa tra i valori codificati, che potrebbe non essere sempre corretta.

from sklearn.preprocessing import OrdinalEncoder

education_levels = [['High School',
                     "Bachelor's",
                     "Master's",
                     "PhD"]]
encoder = OrdinalEncoder(categories=education_levels)

df[['education_encoded']] = encoder.fit_transform(df[['education_level']]) 

One-Hot Encoding

La one-hot encoding trasforma categorie nominali (non ordinate) in colonne binarie, dove ogni categoria diventa una nuova colonna. Per una caratteristica con n categorie, vengono generalmente create n colonne — una colonna vale 1 per la categoria corrispondente, le altre valgono 0. Tuttavia, sono sufficienti solo n-1 colonne per rappresentare l'informazione senza ridondanza.

Ad esempio, una colonna 'color' con valori 'red', 'blue' e 'green' può essere codificata con solo due colonne: 'color_red' e 'color_blue'. Se una riga ha 0 in entrambe, significa che il colore è 'green'. Eliminando una colonna si evita la ridondanza.

La rimozione della colonna ridondante si specifica tramite drop='first':

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
question mark

Quale metodo di codifica è più adatto per una variabile categorica come 'country' con valori come "USA", "Canada" e "Germany", dove non esiste un ordine naturale?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 2
some-alt