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.
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.
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.
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 - μ) / σ \]
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 normalizzazione | Formula | Quando 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. |