Codifica 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']])
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
Awesome!
Completion rate improved to 2.94
Codifica 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']])
Grazie per i tuoi commenti!