Quando utilizzare lo scaler standard e quando Normalizer?


12

Capisco cosa fa lo scalare standard e cosa fa il normalizzatore, secondo la documentazione di scikit: normalizzatore , scaler standard .

So quando viene applicato lo scaler standard. Ma in quale scenario viene applicato Normalizer? Ci sono scenari in cui uno è preferito rispetto all'altro?


Non sempre è necessario utilizzare neanche : vale anche la pena aggiungere che gli algoritmi di classificazione / regressione basati su alberi (RF / XGB / GBT) non necessitano di standardizzazione, puoi semplicemente fornire loro i dati grezzi. (Potresti comunque scegliere di fare comunque la standardizzazione, ad esempio per la stampa, la correlazione, le misure di associazione)
smci

Risposte:


9

Sono utilizzati per due scopi diversi.

StandardScalercambia ogni colonna caratteristicaf:,i per

f:,i=f:,imean(f:,i)std(f:,i).

Normalizercambia ogni campione xn=(fn,1,...,fn,d) per

xn=xnsize(xn),
dove size(xn) per

  1. l1 la norma è xn1=|fn,1|+...+|fn,d|,
  2. l2la norma è ,xn2=fn,12+...+fn,d2
  3. maxla norma è .xn=max{|fn,1|,...,|fn,d|}

Per illustrare il contrasto, considerare il set di dati che è monodimensionale (ogni punto dati ha una caratteristica), dopo l'applicazione , il set di dati diventa . Dopo aver applicato qualsiasi tipo di , il set di dati diventa , poiché l'unica funzione è divisa per sé. Quindi non ha senso per questo caso. Inoltre non ha alcuna utilità quando le caratteristiche hanno unità diverse, ad es. .{1,2,3,4,5}
StandardScaler{1.41,0.71,0.,0.71,1.41}
Normalizer{1.,1.,1.,1.,1.}Normalizer(height,age,income)

Come menzionato in questa risposta , Normalizerè utile soprattutto per controllare le dimensioni di un vettore in un processo iterativo, ad esempio un vettore di parametri durante l'allenamento, per evitare instabilità numeriche dovute a valori elevati.


2
  • StandardScaler: Trasforma i dati in modo tale da avere una media di 0 e una deviazione standard di 1. In breve, standardizza i dati . La standardizzazione è utile per i dati che hanno valori negativi. Dispone i dati in una distribuzione normale standard . È più utile nella classificazione che nella regressione . Puoi leggere questo mio blog .

  • Normalizer: Comprime i dati tra 0 e 1. Esegue la normalizzazione . A causa della ridotta portata e ampiezza, i gradienti nel processo di allenamento non esplodono e non si ottengono valori di perdita più elevati. È più utile nella regressione della classificazione . Puoi leggere questo mio blog .


2
Il normalizzatore che hai definito nel tuo blog è lo scaler MinMax. Il collegamento che ho inserito per la normalizzazione è diverso. Rende la norma l2 di ogni riga di dati uguale a 1.
Heisenbug,

Questa risposta può aiutarti.
Shubham Panchal,

7
-1: "[standardizzazione] organizza i dati nella distribuzione normale." dovresti chiarire cosa intendi con questo. Ho letto questo come "la standardizzazione trasforma i dati in una distribuzione normale", il che non è vero. Dovresti anche spiegare perché la standardizzazione è più utile nella classificazione della regressione (e viceversa per la normalizzazione); Dubito che tale affermazione.
Artem Mavrin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.