Caratteristiche categoriche cosa c’è di sbagliato con la codifica delle etichette?

Etichette categoriche cosa non va nella codifica delle caratteristiche?

Perché non possiamo codificare arbitrariamente le caratteristiche categoriche

Nuvole. Immagine dell'autore.

È ben noto che molti modelli di apprendimento automatico non possono elaborare nativamente le caratteristiche categoriche. Sebbene ci siano alcune eccezioni, di solito spetta al praticante decidere una rappresentazione numerica per ogni caratteristica categorica. Esistono molte modalità per ottenere questo risultato, ma una strategia di codifica raramente raccomandata è la codifica con etichette.

La codifica con etichette sostituisce ogni valore categorico con un numero arbitrario. Ad esempio, se abbiamo una caratteristica contenente lettere dell’alfabeto, la codifica con etichette potrebbe assegnare la lettera “A” un valore di 0, la lettera “B” un valore di 1 e continuare questo schema fino a “Z” che è assegnato 25. Dopo questo processo, tecnicamente parlando, qualsiasi algoritmo dovrebbe essere in grado di gestire la caratteristica codificata.

Ma qual è il problema con questo? Non dovrebbero i modelli di apprendimento automatico sofisticati essere in grado di gestire questo tipo di codifica? Perché esistono librerie come Catboost e altre strategie di codifica per gestire caratteristiche categoriche ad alta cardinalità?

Questo articolo esplorerà due esempi che dimostrano perché la codifica con etichette può essere problematica per i modelli di apprendimento automatico. Questi esempi ci aiuteranno a capire perché esistono così tante alternative alla codifica con etichette e approfondiranno la nostra comprensione della relazione tra complessità dei dati e prestazioni del modello.

Esempi per costruire intuizioni

Uno dei modi migliori per acquisire intuizione su un concetto di apprendimento automatico è capire come funziona in uno spazio a bassa dimensionalità e provare a ricavarne il risultato per dimensioni superiori. Questa estrapolazione mentale non sempre si allinea con la realtà, ma per i nostri scopi, tutto ciò di cui abbiamo bisogno è una singola caratteristica per capire perché abbiamo bisogno di migliori strategie di codifica categorica.

Una caratteristica con 25 categorie

Iniziamo osservando un semplice set di dati di test con una caratteristica e un target continuo. Ecco le dipendenze di cui abbiamo bisogno:

import numpy as npimport polars as plimport matplotlib.pyplot as pltfrom sklearn.preprocessing import LabelEncoderfrom sklearn.tree import DecisionTreeRegressorfrom sklearn.model_selection import train_test_splitfrom…