Quando usar o Standard Scaler e quando o Normalizer?

12

Entendo o que o Standard Scalar faz e o que o Normalizer faz, de acordo com a documentação do scikit: Normalizer , Standard Scaler .

Eu sei quando o Scaler padrão é aplicado. Mas em que cenário o Normalizer é aplicado? Existem cenários em que um é preferido em relação ao outro?

Heisenbug
fonte
Você nem sempre precisa usar : vale a pena acrescentar que os algoritmos classificador / regressor baseados em árvore (RF / XGB / GBT) não precisam de padronização, basta alimentar os dados brutos. (Você ainda pode optar por fazer a padronização de qualquer maneira, por exemplo, para traçar, correlação, medidas de associação)
SMCI

Respostas:

9

Eles são usados ​​para dois propósitos diferentes.

StandardScaleraltera cada coluna de recursof:,i para

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

Normalizermuda cada amostra xn=(fn,1,...,fn,d) para

xn=xnsize(xn),
Onde size(xn) para

  1. l1 norma é xn1=|fn,1|+...+|fn,d|,
  2. l2 norma é xn2=fn,12+...+fn,d2,
  3. max norma é xn=max{|fn,1|,...,|fn,d|}.

Para ilustrar o contraste, considere o conjunto de dados {1,2,3,4,5}que é unidimensional (cada ponto de dados possui um recurso).
Após a aplicação StandardScaler, o conjunto de dados se torna{-1,41,-0,71,0,0,71,1,41}.
Depois de aplicar qualquer tipo de Normalizer, o conjunto de dados se torna{1,1,1,1,1}, já que o único recurso é dividido por ele mesmo. Portanto Normalizer, não tem utilidade para este caso. Também não é útil quando os recursos têm unidades diferentes, por exemplo(heEught,umage,Euncome).

Como mencionado nesta resposta , Normalizeré útil principalmente para controlar o tamanho de um vetor em um processo iterativo, por exemplo, um vetor de parâmetro durante o treinamento, para evitar instabilidades numéricas devido a valores elevados.

Esmailiano
fonte
2
  • StandardScaler: Transforma os dados de maneira que tenha média como 0 e desvio padrão como 1. Em resumo, padroniza os dados . A padronização é útil para dados que possuem valores negativos. Ele organiza os dados em uma distribuição normal padrão . É mais útil na classificação do que na regressão . Você pode ler este meu blog .

  • Normalizer: Espreme os dados entre 0 e 1. Executa a normalização . Devido à diminuição da amplitude e magnitude, os gradientes no processo de treinamento não explodem e você não obtém maiores valores de perda. É mais útil na regressão do que na classificação . Você pode ler este meu blog .

Shubham Panchal
fonte
2
O normalizador que você definiu no seu blog é o scaler MinMax. O link que coloquei para normalização é diferente. Faz a norma L2 de cada linha de dados igual a 1.
Heisenbug
Esta resposta pode ajudá-lo.
Shubham Panchal 21/02/19
7
-1: "[padronização] organiza os dados na distribuição normal". você deve esclarecer o que você quer dizer com isso. Eu li isso como "a padronização transforma dados para ter a distribuição normal", o que não é verdade. Você também deve explicar por que a padronização é mais útil na classificação do que na regressão (e vice-versa para normalização); Duvido dessa afirmação.
Artem Mavrin