Dati numerici: normalizzazione

Dopo aver esaminato i tuoi dati attraverso tecniche statistiche e di visualizzazione, è necessario trasformare i dati in modi che permettano di addestrare ulteriormente il modello in modo efficace. L'obiettivo normalizzazione è trasformare le caratteristiche su una scala simile. Ad esempio, considera i seguenti due caratteristiche:

  • La caratteristica X comprende l'intervallo da 154 a 24.917.482.
  • La funzionalità Y comprende l'intervallo da 5 a 22.

Queste due caratteristiche coprono intervalli molto diversi. La normalizzazione potrebbe X e Y in modo che includano un intervallo simile, ad esempio da 0 a 1.

La normalizzazione offre i seguenti vantaggi:

  • Consente ai modelli di convergere più rapidamente durante l'addestramento. Quando caratteristiche diverse hanno intervalli diversi, la discesa del gradiente può "rimbalzo" e convergenza lenta. Detto questo, gli ottimizzatori più avanzati Adagrado e Adamo si proteggono da questo problema modificare il tasso di apprendimento effettivo nel tempo.
  • Aiuta i modelli a dedurre previsioni migliori. Quando diverse caratteristiche hanno intervalli diversi, modello potrebbe fare previsioni un po' meno utili.
  • Aiuta a evitare il "trap NaN" quando i valori delle caratteristiche sono molto elevati. NaN è l'abbreviazione di non è un numero. Quando un valore in un modello supera il valore limite di precisione con rappresentazione in virgola mobile, il sistema imposta il valore su NaN di un numero. Quando un numero nel modello diventa NaN, gli altri numeri in alla fine il modello diventerà anche NaN.
  • Aiuta il modello ad apprendere i pesi appropriati per ogni caratteristica. Senza la scalabilità delle caratteristiche, il modello presta troppa attenzione alle caratteristiche con intervalli ampi e non c'è abbastanza attenzione alle caratteristiche con intervalli ristretti.

Consigliamo di normalizzare le caratteristiche numeriche coprendo in modo distinto intervalli diversi (ad es. età e reddito). Consigliamo inoltre di normalizzare una singola caratteristica numerica che copre un ampio intervallo, come city population.

Considera le seguenti due funzionalità:

  • Il valore più basso della caratteristica A è -0,5, mentre il più alto è +0,5.
  • Il valore più basso della caratteristica B è -5,0, mentre il massimo è +5,0.

Le caratteristiche A e B hanno intervalli relativamente ristretti. Tuttavia, le funzionalità di B l'intervallo è 10 volte più ampio dell'intervallo della caratteristica A. Pertanto:

  • All'inizio dell'addestramento, il modello presuppone che la caratteristica A sia dieci volte più "importante" rispetto alla funzionalità B.
  • L'addestramento richiederà più tempo del previsto.
  • Il modello risultante potrebbe non essere ottimale.

Il danno complessivo dovuto alla mancata normalizzazione sarà relativamente ridotto. ma consigliamo comunque di normalizzare le caratteristiche A e B sulla stessa scala, ad esempio da -1,0 a +1,0.

Consideriamo ora due caratteristiche con una maggiore disparità di intervalli:

  • Il valore più basso della caratteristica "C è -1, mentre il più alto è +1.
  • Il valore più basso della caratteristica D è +5000, mentre il massimo è +1.000.000.000.

Se non normalizzi le caratteristiche C e D, il modello probabilmente non ottimale. Inoltre, l'addestramento richiederà convergono o addirittura non riescono a convergere del tutto.

Questa sezione illustra tre comuni metodi di normalizzazione:

  • scalabilità lineare
  • Scalabilità punteggio z
  • scalabilità dei log

Questa sezione tratta inoltre ritaglio. Sebbene non sia un vero di normalizzazione, il clipping impedisce le caratteristiche numeriche indisciplinate che producono modelli migliori.

Scala lineare

Scalabilità lineare (più comunemente abbreviata in scalabilità) significa convertire i valori in virgola mobile da il loro intervallo naturale in un intervallo standard, di solito da 0 a 1 o Da -1 a +1.

La scalabilità lineare è una buona scelta quando vengono soddisfatte tutte le seguenti condizioni:

  • I limiti inferiore e superiore dei dati non cambiano molto nel tempo.
  • La caratteristica contiene pochi o nessun outlier e questi valori non sono estrema.
  • La caratteristica è distribuita approssimativamente uniformemente nel suo intervallo. In altre parole, un istogramma mostrerà più o meno anche le barre per la maggior parte delle fasce d'età.

Supponiamo che l'utente age sia una caratteristica. La scalabilità lineare è una buona normalizzazione tecnica per age perché:

  • I limiti inferiore e superiore approssimati sono compresi tra 0 e 100.
  • age contiene una percentuale relativamente piccola di outlier. Solo lo 0,3% circa la popolazione è superiore a 100 persone.
  • Sebbene alcune fasce d'età siano rappresentate meglio di altre, un grande pubblico deve contenere esempi sufficienti per tutte le età.

Verifica le tue conoscenze

Supponiamo che il modello abbia una caratteristica denominata net_worth che contiene la rete di persone diverse. La scalabilità lineare sarebbe una buona normalizzazione per net_worth? Qual è il motivo?

Scalabilità punteggio z

Il punteggio z è il numero di deviazioni standard che un valore proviene dalla media. Ad esempio, un valore pari a 2 deviazioni standard maggiori della media ha un punteggio z di +2,0. Un valore pari a 1,5 deviazioni standard inferiore a la media ha un punteggio Z di -1,5.

Rappresentare una caratteristica con la scalabilità del punteggio z significa memorizzare il relativo Punteggio z nel vettore di caratteristiche. Ad esempio, la figura seguente mostra due istogrammi:

  • A sinistra, una distribuzione normale classica.
  • A destra, la stessa distribuzione normalizzata dalla scala del punteggio z.
Figura 4. Due istogrammi: entrambi mostrano distribuzioni normali con
           la stessa distribuzione. Il primo istogramma, che contiene i dati non elaborati
           hanno una media di 200 e una deviazione standard di 30. Il secondo
           istogramma, che contiene una versione Z-Score della prima
           di distribuzione, ha una media di 0 e una deviazione standard di 1.
Figura 4. Dati non elaborati (sinistra) e punteggio z (destra) per una normale distribuzione dei contenuti.

Anche la scalabilità del punteggio z è una buona scelta per dati come quelli mostrati nella figura seguente, che ha solo una distribuzione vagamente normale.

Figura 5. Due istogrammi di forma identica, ognuno dei quali mostra una
            sale verso un altopiano e poi una discesa relativamente veloce seguita da
            graduale decadimento. Un istogramma illustra
            la distribuzione dei dati non elaborati; l'altro istogramma illustra
            distribuzione dei dati non elaborati, quando normalizzati mediante scaletta del punteggio Z.
            I valori sull'asse X dei due istogrammi sono molto diversi.
            L'istogramma dei dati non elaborati copre il dominio da 0 a 29.000, mentre
            l'istogramma in scala dello Z-Score va da -1 a circa +4,8
. Figura 5. Dati non elaborati (sinistra) e scalabilità del punteggio Z (destra) per un la distribuzione normale non classica.

Lo z-score è una buona scelta quando i dati seguono una distribuzione normale o una distribuzione alquanto simile a una normale distribuzione.

Tieni presente che alcune distribuzioni potrebbero essere normali nella maggior parte dei loro ma con al contempo outlier estreme. Ad esempio, quasi tutti i i punti di una caratteristica net_worth potrebbero adattarsi perfettamente a tre deviazioni standard, ma alcuni esempi di questa caratteristica potrebbero essere centinaia di deviazioni standard lontano dalla media. In queste situazioni, è possibile combinare la scalabilità del punteggio Z con un'altra forma di normalizzazione (di solito taglio) per gestire questa situazione.

Allenamento: verifica le tue conoscenze

Supponiamo che il modello venga addestrato su una caratteristica denominata height che contiene l'adulto alte dieci milioni di donne. La scalabilità del punteggio z sarebbe una buona normalizzazione per height? Qual è il motivo?

Scala logaritmica

La scalabilità dei log calcola il logaritmo del valore non elaborato. In teoria, il il logaritmo può essere qualsiasi base; In pratica, la scalabilità dei log di solito calcola il logaritmo naturale (ln).

La scalabilità dei log è utile quando i dati sono conformi a una distribuzione della legge dell'alimentazione. A caso, una distribuzione legge dell'energia si presenta così:

  • Valori bassi di X hanno valori molto alti di Y.
  • Con l'aumento dei valori di X, i valori di Y diminuiscono rapidamente. Di conseguenza, valori elevati di X hanno valori molto bassi di Y.

Le classificazioni dei film sono un buon esempio di distribuzione della legge elettrica. Nel seguente figura, nota:

  • Alcuni film hanno molte valutazioni degli utenti. I valori minimi di X sono associati valori di Y.)
  • La maggior parte dei film ha pochissime valutazioni degli utenti. I valori elevati di X sono bassi valori di Y.)

La scalabilità dei log cambia la distribuzione, aiutandoti ad addestrare un modello che per fare previsioni migliori.

Immagine 6. Due grafici che confrontano i dati non elaborati con il log dei dati non elaborati.
            Il grafico dei dati non elaborati mostra numerose valutazioni degli utenti nella parte principale, seguite
            da una lunga coda. Il grafico dei log ha una distribuzione più uniforme.
. Figura 6. Confrontare una distribuzione non elaborata con il relativo log.

Come secondo esempio, la vendita di libri è conforme a una distribuzione in base alla legge elettrica perché:

  • La maggior parte dei libri pubblicati ne vende un numero esiguo, forse una o duecento.
  • Alcuni libri ne vendono un numero moderato, nell'ordine delle migliaia.
  • Solo pochi bestseller vendono più di un milione di copie.

Supponiamo che tu stia addestrando un modello lineare per trovare la relazione come le copertine dei libri e le vendite dei libri. L'addestramento di un modello lineare su valori non elaborati devono trovare qualcosa sulle copertine dei libri che ne vendono un milione di copie 10.000 in più delle copertine di libri che ne vendono solo 100. Tuttavia, la scalabilità di tutti i dati di vendita rende l'attività molto più fattibile. Ad esempio, il log di 100 è:

  ~4.6 = ln(100)

mentre il logaritmo di 1.000.000 è:

  ~13.8 = ln(1,000,000)

Quindi, il logaritmo di 1.000.000 è solo circa tre volte più grande del logaritmo di 100. Probabilmente potresti immaginare che la copertina di un libro di bestseller sia circa tre volte più potente (in qualche modo) di una copertina di un libro minuscolo.

Sutura

Il taglio è una tecnica per ridurre al minimo l'influenza di outlier estreme. In breve, l'applicazione di tagli di solito (riduce) il valore dei valori anomali a un valore massimo specifico. Il ritaglio è una un'idea strana, eppure, può essere molto efficace.

Ad esempio, immagina un set di dati contenente una caratteristica denominata roomsPerPerson, che rappresenta il numero di camere (le stanze totali divise per numero di occupanti) per le varie abitazioni. La trama seguente mostra che oltre Il 99% dei valori delle caratteristiche è conforme a una normale distribuzione (approssimativamente, una media di 1,8 e una deviazione standard di 0,7). Tuttavia, la caratteristica contiene alcuni outlier, alcuni dei quali estremi:

Immagine 7. Un grafico di stanzePerPersona in cui quasi tutti i valori
            sono raggruppati tra 0 e 4, ma c'è una coda lunga
            fino a 17 camere a persona
. Figura 7. Principalmente normale, ma non del tutto normale.

Come si può ridurre al minimo l'influenza di questi outlier estremi? Beh, l'istogramma non è una distribuzione uniforme, una distribuzione normale o una legge di potenza distribuzione dei contenuti. E se imposti semplicemente il limite o il clip sul valore massimo roomsPerPerson a un valore arbitrario, ad esempio 4,0?

Un grafico di stanzePerPersona in cui tutti i valori sono compresi tra 0 e
            4,0. La trama è a forma di campana, ma c'è una collina anomala a 4,0
. Figura 8. Valori delle funzionalità di ritaglio nella versione 4.0.

Ritagliare il valore della caratteristica a 4,0 non significa che il modello ignora tutti superiori a 4,0. Piuttosto, significa che tutti i valori maggiori 4.0 ora diventa 4.0. Questo spiega la peculiare collina a 4.0. Nonostante l'insieme di caratteristiche in scala è ora più utile dei dati originali.

Aspetta un attimo! Puoi davvero ridurre ogni valore outlier a un valore arbitrario superiore soglia? Sì, per l'addestramento di un modello.

Puoi anche tagliare i valori dopo aver applicato altre forme di normalizzazione. Ad esempio, supponi di utilizzare la scalabilità del punteggio Z, ma alcuni outlier hanno valori assoluti di gran lunga superiori a 3. In questo caso, potresti:

  • Ritaglia i punteggi Z maggiori di 3 per ottenere esattamente 3.
  • Ritaglia i punteggi Z inferiori a -3 per ottenere esattamente -3.

Il ritaglio impedisce al modello di eseguire l'indicizzazione in eccesso su dati non importanti. Tuttavia, alcuni valori anomali sono in realtà importanti, quindi ritaglia i valori con attenzione.

Riepilogo delle tecniche di normalizzazione

Tecnica di normalizzazioneFormulaQuando utilizzarle
Scala lineare $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Quando la caratteristica è distribuita uniformemente tra un intervallo fisso.
Scalabilità punteggio z $$ x' = \frac{x - μ}{σ}$$ Quando la distribuzione delle caratteristiche non contiene outlier estremi.
Scala logaritmica $$ x' = log(x)$$ Quando la funzionalità è conforme alla legge sulla potenza.
Sutura Se x $> max$, imposta $x" = max$
Se $x < min$, imposta $x" = min$
Quando la caratteristica contiene anomalie estreme.

Esercizio: verifica le tue conoscenze

Quale tecnica sarebbe più adatta per normalizzare una caratteristica con la seguente distribuzione?

Un istogramma che mostra un cluster di dati con valori compresi tra 0 e
          200.000. Il numero di punti dati aumenta gradualmente per l&#39;intervallo
          da 0 a 100.000 per poi diminuire gradualmente da 100.000 a
          200.000.

Scalabilità punteggio z
I punti dati sono generalmente conformi a una distribuzione normale, quindi il punteggio Z la scalabilità li costringerà a rientrare nell'intervallo da –3 a +3.
Scala lineare
Leggi le discussioni sulle tecniche di normalizzazione in questa pagina. e riprova.
Scala logaritmica
Leggi le discussioni sulle tecniche di normalizzazione in questa pagina. e riprova.
Sutura
Leggi le discussioni sulle tecniche di normalizzazione in questa pagina. e riprova.

Supponiamo che tu stia sviluppando un modello che prevede la la produttività in base alla temperatura misurata all'interno del data center. Quasi tutti i valori temperature nel tuo set di dati rientrano tra 15 e 30 (Celsius), con le seguenti eccezioni:

  • Una o due volte l'anno, nei giorni estremamente caldi, alcuni valori tra 31 e 45 sono registrati in temperature.
  • Ogni 1000° punto in temperature è impostato su 1000 anziché la temperatura effettiva.

Quale sarebbe una ragionevole tecnica di normalizzazione per temperature?

Ritaglia i valori outlier compresi tra 31 e 45, ma elimina i valori anomali con il valore 1000

Il valore 1000 è un errore e deve essere eliminato anziché tagliato.

I valori compresi tra 31 e 45 sono punti dati legittimi. Il ritaglio potrebbe essere una buona idea per questi valori, supponendo che set di dati non contiene abbastanza esempi in questo intervallo di temperature per addestrare il modello per fare previsioni efficaci. Tuttavia, durante l'inferenza, puoi notare che il modello troncato eseguirebbe quindi la stessa previsione una temperatura di 45 e una temperatura di 35.

Ritaglia tutti i valori anomali
Leggi le discussioni sulle tecniche di normalizzazione in questa pagina. e riprova.
Elimina tutti i valori anomali
Leggi le discussioni sulle tecniche di normalizzazione in questa pagina. e riprova.
Elimina i valori outlier compresi tra 31 e 45, ma taglia il con un valore 1000.
Leggi le discussioni sulle tecniche di normalizzazione in questa pagina. e riprova.