0Pricing
Learn AI with Python · Lezione

Codifica delle variabili categoriche

Label encoding, one-hot encoding, codifica ordinale e confronto tra pd.get_dummies() e sklearn OrdinalEncoder.

Codifica delle variabili categoriche è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Perché codificare le categorie?

La maggior parte dei modelli di machine learning richiede NUMERI, non etichette testuali come "red" o "small". La codifica converte le variabili categoriche in forma numerica preservandone il significato.

Ordinali e nominali

Le categorie ordinali hanno un ordine naturale (small < medium < large). Le categorie nominali non lo hanno (red, green, blue). La codifica corretta dipende dal tipo di categoria.

Codifica con etichette per gli ordinali

LabelEncoder associa ogni categoria a un intero. È appropriato per i dati ORDINALI, nei quali l'ordine degli interi ha un significato.

from sklearn.preprocessing import LabelEncoder
sizes = ["small", "large", "medium", "small"]
le = LabelEncoder()
print(le.fit_transform(sizes))   # integers (alphabetical by default)

Il rischio con le nominali

Applicare la codifica con etichette a dati NOMINALI è rischioso: il modello potrebbe interpretare red=0, green=1, blue=2 come se green fosse "tra" red e blue, inventando un ordine inesistente. Usi invece la codifica one-hot.

Codifica one-hot con get_dummies

pd.get_dummies crea una colonna binaria per ogni categoria. In ogni riga esattamente una colonna vale 1, senza alcun ordine implicito: è l'ideale per le variabili nominali.

import pandas as pd
df = pd.DataFrame({"color": ["red", "green", "blue", "red"]})
print(pd.get_dummies(df, columns=["color"]))

La trappola delle variabili dummy

Quando k categorie producono k colonne, queste sono perfettamente collineari (la loro somma è sempre 1). Questa trappola delle variabili dummy compromette i modelli lineari. Per risolvere il problema, elimini una colonna.

drop_first

drop_first=True rimuove una categoria, lasciando k-1 colonne. La categoria rimossa diventa la baseline implicita (tutti zeri), eliminando la collinearità.

print(pd.get_dummies(df, columns=["color"], drop_first=True))
# one fewer column; the dropped color is the baseline

sklearn OrdinalEncoder

Per le pipeline, OrdinalEncoder è l'equivalente sklearn della codifica con etichette per le FEATURE e consente di specificare esplicitamente l'ordine delle categorie.

from sklearn.preprocessing import OrdinalEncoder
enc = OrdinalEncoder(categories=[["small", "medium", "large"]])
print(enc.fit_transform([["medium"], ["large"], ["small"]]))

sklearn OneHotEncoder

OneHotEncoder è lo strumento one-hot adatto alle pipeline. Apprende le categorie dai dati di addestramento e applica la stessa mappatura ai nuovi dati, un aspetto fondamentale in produzione.

from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"], ["green"], ["blue"]]))

Gestione delle categorie non osservate

I dati di test possono contenere categorie mai osservate durante l'addestramento. Imposti handle_unknown="ignore" affinché OneHotEncoder restituisca tutti zeri invece di generare un errore.

ohe = OneHotEncoder(handle_unknown="ignore", sparse_output=False)
ohe.fit([["red"], ["green"]])
print(ohe.transform([["blue"]]))   # all zeros, no error

Colonne ad alta cardinalità

Applicare la codifica one-hot a una colonna con migliaia di valori unici fa esplodere il numero di feature. Per un'elevata cardinalità, consideri la codifica target, l'hashing oppure il raggruppamento delle categorie rare in "other".

Verifica rapida

Metta alla prova le proprie conoscenze sulla codifica.

Riepilogo

Strumenti per la codifica:

  • Dati ordinali -> codifica con interi (LabelEncoder / OrdinalEncoder)
  • Dati nominali -> one-hot (pd.get_dummies / OneHotEncoder)
  • drop_first=True evita la trappola delle variabili dummy
  • handle_unknown="ignore" per le categorie di test non osservate
  • Faccia attenzione all'esplosione delle colonne ad alta cardinalità

Domande Frequenti

La lezione «Codifica delle variabili categoriche» è gratuita?

Sì — il testo completo di «Codifica delle variabili categoriche» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Codifica delle variabili categoriche»?

Label encoding, one-hot encoding, codifica ordinale e confronto tra pd.get_dummies() e sklearn OrdinalEncoder. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Codifica delle variabili categoriche»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Rilevamento e rimozione degli outlier
  2. Codifica delle variabili categoriche
  3. Ridimensionamento delle feature: normalizzazione e standardizzazione
  4. Creazione di pipeline di preprocessing
← Torna a Learn AI with Python