Normalizzazione

L'obiettivo della normalizzazione è trasformare le funzionalità su una scala simile. Questo migliora le prestazioni e la stabilità dell'addestramento del modello.

Tecniche di normalizzazione in breve

Esistono quattro tecniche comuni di normalizzazione:

  • scalabilità fino a un intervallo
  • ritaglio
  • scalabilità dei log
  • punteggio z

I seguenti grafici mostrano l'effetto di ciascuna tecnica di normalizzazione sulla distribuzione della funzionalità non elaborata (prezzo) a sinistra. I grafici si basano sul set di dati dell'Annuario automobilistico di Ward del 1985 che fa parte del repository di machine learning UCI nella sezione Autoset di dati dell'auto.

Cinque grafici: 1. una distribuzione non elaborata. 2. La distribuzione non elaborata scalata a 
un intervallo, che ha la stessa forma della distribuzione non elaborata. 3. la distribuzione non elaborata ritagliata, che elimina i valori più elevati. 4. la distribuzione non elaborata scalata da logaritmo, che raggruppa i dati al centro della distribuzione. 5. Il punteggio z della distribuzione, che ha una forma simile a quella della distribuzione non elaborata.

Figura 1. Riepilogo delle tecniche di normalizzazione.

Scalabilità in base a un intervallo

Ricorda da MLCC che scalabilità significa che i valori delle funzionalità in virgola mobile della loro gamma naturale (ad esempio, da 100 a 900) vengono convertiti in un intervallo standard, di solito 0 e 1 (o talvolta da -1 a +1). Utilizza la seguente formula semplice per scalare fino a un intervallo:

\[ x' = (x - x_{min}) / (x_{max} - x_{min}) \]

La scalabilità fino a un intervallo è una buona scelta quando vengono soddisfatte entrambe le seguenti condizioni:

  • Conoscere i limiti superiore e inferiore approssimativi dei dati con pochi o nessun valore outlier.
  • I dati sono distribuiti approssimativamente in modo uniforme in questo intervallo.

Un buon esempio è l'età. La maggior parte dei valori dell'età è compresa tra 0 e 90 e ogni parte dell'intervallo ha un numero considerevole di persone.

Al contrario, non useresti la scalabilità sul reddito, perché solo alcune persone hanno redditi molto alti. Il limite superiore della scala lineare per il reddito sarebbe molto alto e la maggior parte delle persone verrà scomposta in una piccola parte della scala.

Clip di funzionalità

Se il tuo set di dati contiene valori anomali estremi, puoi provare il ritaglio delle funzionalità, che fissa tutti i valori delle caratteristiche sopra (o sotto) un determinato valore a un valore fisso. Ad esempio, potresti ritagliare tutti i valori di temperatura sopra 40 esattamente a 40.

Puoi applicare il ritaglio delle funzionalità prima o dopo altre normalizzazioni.

Formula: imposta i valori minimo e massimo per evitare i valori anomali.

Un confronto tra una distribuzione nativa e una distribuzione con limitazioni. Nella distribuzione nativa, quasi tutti i valori sono compresi nell'intervallo da 1 a 4, ma una piccola percentuale di valori è compresa tra 5 e 55. Nella distribuzione con limite, tutti i valori originariamente superiori a 4 ora hanno il valore 4.

Figura 2. Confrontando una distribuzione non elaborata e la relativa versione ritagliata.

Un'altra semplice strategia di ritaglio consiste nel ritagliare mediante z-score a +-NXXXX (ad esempio, limitare a +-33). Nota che XXXX è la deviazione standard.

Ridimensionamento log

La scalabilità dei log calcola il log dei valori per comprimere un intervallo ampio in un intervallo ristretto.

\[ x' = log(x) \]

La scalabilità dei log è utile quando alcuni valori hanno molti punti, mentre la maggior parte degli altri valori ne ha pochi. Questa distribuzione di dati è nota come distribuzione delle leggi sull'energia. Le classificazioni dei film sono un buon esempio. Nel grafico che segue, la maggior parte dei film ha pochissime valutazioni (i dati in coda), mentre alcuni hanno molte valutazioni (i dati nella sezione head). La scalabilità dei log modifica la distribuzione, contribuendo a migliorare le prestazioni del modello lineare.

Due grafici che confrontano i dati non elaborati con il log dei dati non elaborati. Il grafico dei dati non elaborati mostra molte valutazioni nella testa, seguite da una lunga coda. Il grafico dei log ha una distribuzione più uniforme.

Figura 3. Confrontando una distribuzione non elaborata con i suoi log.

punteggio Z

Il punteggio Z è una variazione della scalabilità che rappresenta il numero di deviazioni standard lontano dalla media. Potresti utilizzare il punteggio z per assicurarti che le distribuzioni delle caratteristiche abbiano media = 0 e std = 1. È utile quando ci sono alcuni valori anomali, ma non così tanto da richiedere il ritaglio.

La formula per calcolare il punteggio z di un punto, x, è la seguente:

\[ x' = (x - μ) / σ \]

Due grafici che confrontano i dati non elaborati con quelli normalizzati con un punteggio z. I dati non elaborati mostrano una distribuzione di Poisson approssimativa, che va da 5000 a 45.000.
Gli intervalli di dati normalizzati
sono compresi tra -1 e +4.

Figura 4. Confrontando una distribuzione non elaborata con la relativa distribuzione del punteggio z.

Noterai che il punteggio z comprime i valori non elaborati che hanno un intervallo di ~40.000 in un intervallo da circa -1 a +4.

Supponiamo che tu non abbia la certezza che i valori anomali siano davvero estremi. In questo caso, inizia con il punteggio z, a meno che tu non abbia valori delle caratteristiche che non vuoi che il modello apprenda; ad esempio, i valori sono il risultato di un errore di misurazione o di una farfalla.

Riepilogo

Tecnica di normalizzazioneFormulaQuando utilizzare le impostazioni
Scalabilità lineare $$ x' = (x - x_{min}) / (x_{max} - x_{min}) $$ Quando la funzionalità viene distribuita in modo più o meno uniforme su un intervallo fisso.
Clip se x > max, quindi x' = max. se x < min, allora x' = min Quando l'elemento contiene alcuni valori anomali.
Ridimensionamento log x' = log(x) Quando la funzionalità è conforme alla legge energetica.
Punteggio Z x' = (x - μ) / XXXX Quando la distribuzione delle funzionalità non contiene valori anomali estremi.