Cosa sono le feature nel machine learning

Contenuti dell'articolo

Nel mondo del machine learning c’è una frase che si sente spesso: i modelli sono bravi quanto i dati che gli dai.
E tra i vari ingredienti dei dati, le feature sono forse i più importanti.
Ma cosa sono esattamente?

In parole semplici, una feature è una caratteristica misurabile o una proprietà di un fenomeno che stai cercando di analizzare. Ogni riga di un dataset, ogni record, è descritto da un insieme di feature.
Se hai mai compilato un questionario con età, altezza e peso, hai già usato tre feature!

Una definizione semplice di feature

Immagina di voler insegnare ad un computer a distinguere le mele dalle arance. Il computer non ha occhi né esperienza, ma può analizzare delle caratteristiche numeriche: colore (su una scala), peso, diametro, forma. Ognuna di queste caratteristiche è una feature. L’insieme di tutte le feature per un singolo oggetto è quello che si chiama vettore di feature o feature vector. Il computer non vede l’oggetto come lo vediamo noi: vede solo numeri organizzati in una tabella, dove ogni colonna è una feature e ogni riga è un esempio.

Feature, variabili e attributi: stessi concetti

Nel machine learning si usano tanti termini per dire più o meno la stessa cosa. Feature, variabile, attributo, colonna, dimensione: indicano tutte una singola proprietà misurabile dei dati. La differenza è solo il contesto. In statistica si dice variabile, nei database si dice colonna, in algebra lineare si dice dimensione. In machine learning si dice feature. Scegliete quella che vi piace di più.

I diversi tipi di feature

Non tutte le feature sono uguali. Capire il tipo di feature che hai davanti è importante perché determina come il modello le interpreta e come vanno preprocessate.

Feature numeriche

Le più semplici da capire per un computer. Possono essere continue, come il prezzo di una casa o la temperatura esterna, oppure discrete, come il numero di stanze in un appartamento. I modelli di machine learning lavorano naturalmente bene con le feature numeriche, perché i calcoli matematici alla base degli algoritmi si basano su numeri.

Feature categoriche

Qui le cose si fanno più interessanti. Una feature categorica rappresenta un gruppo o una categoria: il colore degli occhi, la città di residenza, il tipo di abbonamento. Un computer non capisce direttamente la stringa “blu” o “rosso”, quindi queste feature vanno trasformate in numeri. Il metodo più comune è il one-hot encoding: si crea una colonna per ogni possibile categoria, con valore 1 o 0. Se hai tre colori (rosso, blu, verde), crei tre colonne binarie.

Feature testuali

Il testo è una forma di dato più complessa. Le parole da sole non sono numeri, ma possono essere trasformate in feature numeriche con tecniche come TF-IDF o word embedding. È qui che entra in gioco una delle aree più affascinanti del machine learning: trasformare il linguaggio umano in qualcosa che un computer possa elaborare.

Feature temporali

Il tempo è una feature speciale. Non è solo una data: puoi estrarre caratteristiche come il giorno della settimana, il mese, se è festivo o no, l’ora del giorno e tanto altro. Spesso sono queste feature derivate a fare la differenza. Un modello che prevede il traffico non guarda solo la data, ma anche se è lunedì mattina o domenica pomeriggio.

Infografica: i quattro tipi di feature nel machine learning

Feature buone e feature cattive

Non tutte le feature sono utili. Alcune possono addirittura peggiorare le prestazioni del modello.

Una buona feature è informativa, discriminante e indipendente.
Una cattiva feature è ridondante, rumorosa o irrilevante.

Per esempio, se vuoi prevedere il prezzo di una casa, il codice postale è una buona feature (dice molto sulla zona), ma il colore della porta è probabilmente irrilevante. Il processo di scegliere e creare le feature giuste si chiama feature engineering ed è una delle attività più importanti in un progetto di machine learning.

Esempi concreti di feature

Vediamo qualche esempio pratico per fissare il concetto.

Previsione del prezzo di una casa: metri quadri (numerica continua), numero di camere (numerica discreta), quartiere (categorica), anno di costruzione (numerica), presenza di giardino (binaria: sì o no), distanza dal centro (numerica).

Riconoscimento di spam nelle email: numero di parole in maiuscolo (numerica), presenza della parola “gratis” (binaria), lunghezza del testo (numerica), numero di link (numerica), lingua del messaggio (categorica).

Diagnosi medica: età del paziente (numerica), pressione sanguigna (numerica), fumatore (binaria), sintomi riferiti (testuale, trasformata in embedding), esami del sangue (numeriche multiple).

In ogni caso, le feature trasformano un problema del mondo reale in un formato che il computer possa elaborare. La qualità del tuo modello dipende direttamente dalla qualità delle tue feature.

Feature e target: la coppia fondamentale

In ogni problema di machine learning supervisionato c’è una distinzione importante: le feature sono gli input che dai al modello (i dati in ingresso), mentre il target è ciò che vuoi prevedere (l’output).

Nel dataset delle mele e arance, le feature sono peso, colore e diametro, mentre il target è la variabile che dice “mela” o “arancia”. Il modello impara a trovare relazioni tra le feature e il target, e quando gli dai nuove feature (di un frutto mai visto), prova a indovinare il target. Questo è il cuore del machine learning: usare feature conosciute per prevedere un target sconosciuto.

Diagramma: differenza tra feature e target nel machine learning

FAQ

Quante feature servono per un buon modello? Dipende dal problema. Alcuni modelli funzionano bene con poche feature (decine), altri ne richiedono migliaia. Più importante del numero è la qualità: poche feature buone battono tante feature inutili.

Cosa succede se due feature sono molto simili tra loro? Si parla di multicollinearità. Feature molto correlate possono confondere alcuni modelli, come la regressione lineare. In quel caso, una delle due va rimossa o combinata.

Le feature devono sempre essere numeriche? I modelli di machine learning lavorano con numeri, quindi le feature non numeriche (categoriche, testuali) vanno trasformate. Ma esistono modelli come gli alberi decisionali che gestiscono bene le categoriche con conversioni minime.

Come si scelgono le feature giuste? Serve conoscenza del dominio (capire il problema), analisi esplorativa dei dati (grafici e statistiche) e tecniche automatiche di feature selection che valutano l’importanza di ogni feature.

Una feature può essere creata combinando altre feature? Sì, ed è una tecnica potentissima. Si chiama feature engineering e include operazioni come moltiplicare due feature (interazioni), estrarre componenti principali (PCA) o creare rapporti.

Newsletter settimanale con le ultime novità sull’intelligenza artificiale

Corso gratuito sull’Intelligenza Artificiale, dalle nozioni base ai concetti più complessi

Condividi:

Potrebbero interessarti