¿Cuándo usar Standard Scaler y cuándo Normalizer?

12

Entiendo lo que hace Standard Scalar y lo que hace Normalizer, según la documentación de scikit: Normalizer , Standard Scaler .

Sé cuándo se aplica el Escalador estándar. ¿Pero en qué escenario se aplica Normalizer? ¿Hay escenarios en los que se prefiere uno sobre el otro?

Heisenbug
fuente
No siempre necesita usar ninguno : también vale la pena agregar que los algoritmos clasificadores / regresores basados ​​en árboles (RF / XGB / GBT) no necesitan estandarización, solo puede alimentarlos con los datos sin procesar. (De todos modos, puede optar por hacer la estandarización, por ejemplo, para el trazado, la correlación, las medidas de asociación)
smci

Respuestas:

9

Se usan para dos propósitos diferentes.

StandardScalercambia cada columna de función aF:,yo

F:,yo=F:,yo-metromiunanorte(F:,yo)stre(F:,yo).

Normalizercambia cada muestra a donde paraXnorte=(Fnorte,1,...,Fnorte,re)

Xnorte=Xnortesyozmi(Xnorte),
syozmi(Xnorte)

  1. l1la norma es,Xnorte1=El |Fnorte,1El |+...+El |Fnorte,reEl |
  2. l2la norma es ,Xnorte2=Fnorte,12+...+Fnorte,re2
  3. maxla norma es .Xnorte=metrounaX{El |Fnorte,1El |,...,El |Fnorte,reEl |}

Para ilustrar el contraste, considere el conjunto de datos que es unidimensional (cada punto de datos tiene una característica). Después de aplicar , el conjunto de datos se convierte en . Después de aplicar cualquier tipo de , el conjunto de datos se convierte en , ya que la única característica se divide por sí misma. Entonces no tiene uso para este caso. Tampoco tiene uso cuando las características tienen unidades diferentes, por ejemplo .{1,2,3,4 4,5 5}
StandardScaler{-1,41,-0,71,0.,0,71,1,41}
Normalizer{1),1),1),1),1)}Normalizer(hmiyosolht,unasolmi,yonorteCometromi)

Como se menciona en esta respuesta , Normalizeres principalmente útil para controlar el tamaño de un vector en un proceso iterativo, por ejemplo, un vector de parámetros durante el entrenamiento, para evitar inestabilidades numéricas debido a valores grandes.

Esmailian
fuente
2
  • StandardScaler: Transforma los datos de tal manera que tiene una media de 0 y una desviación estándar de 1. En resumen, estandariza los datos . La estandarización es útil para datos que tienen valores negativos. Se organiza los datos en una distribución normal estándar . Es más útil en clasificación que en regresión . Puedes leer este blog mío.

  • Normalizer: Exprime los datos entre 0 y 1. Realiza la normalización . Debido a la disminución del rango y la magnitud, los gradientes en el proceso de entrenamiento no explotan y no obtienes valores más altos de pérdida. Es más útil en regresión que en clasificación . Puedes leer este blog mío.

Shubham Panchal
fuente
2
El normalizador que ha definido en su blog es el escalador MinMax. El enlace que he puesto para la normalización es diferente. Hace que la norma l2 de cada fila de datos sea igual a 1.
Heisenbug
Esta respuesta puede ayudarte.
Shubham Panchal
77
-1: "[estandarización] organiza los datos en distribución normal". deberías aclarar lo que quieres decir con esto. Leí esto como "la estandarización transforma los datos para tener la distribución normal", lo cual no es cierto. También debe explicar por qué la estandarización es más útil en la clasificación que la regresión (y viceversa para la normalización); Dudo de esa afirmación.
Artem Mavrin