¿Cuáles son los métodos de normalización de datos más comunes utilizados en el aprendizaje automático?

Dos métodos son muy comunes:

  • Escala mínima -máxima : reste el valor mínimo y divida por el rango (es decir, valor máximo – valor mínimo) de cada columna. Cada nueva columna tiene [matemática] 0 [/ matemática] como su valor mínimo y [matemática] 1 [/ matemática] como su máximo.
  • Escala de estandarización : reste la media [1] y divida por la desviación estándar [2] de cada columna. Cada nueva columna tiene una media [matemática] 0 [/ matemática] y una desviación estándar de [matemática] 1 [/ matemática].

Otro menos común que es útil cuando se trabaja en espacios métricos [3] (digamos que si se agrupa (4)):

  • Escala de longitud uno o normalización : divida cada característica por su norma [matemática] L_ {2} [/ matemática] [5] (o cualquier otra [matemática] L_ {p} [/ matemática] [6]).

Apliquemos estos tres métodos diferentes a [math] x = [1,2,3] [/ math] (el vector transformado se denota [math] \ hat {x} [/ math])

  1. Min-Max : [matemáticas] \ min (x) = 1, \, \ max (x) = 3 \, => \ hat {x} = \ frac {[0, 1, 2]} {2} = [ 0, 0.5, 1] ​​[/ matemáticas].
  2. Estandarización ([matemática] m [/ matemática] denota la media y [matemática] \ sigma [/ matemática] la desviación estándar): [matemática] m (x) = 2, \, \ sigma (x) = \ sqrt {\ frac {2} {3}} \, => \ hat {x} =… [/ math] (a la izquierda para el lector).
  3. Normalización ([matemática] L_ {2} [/ matemática] normalización): [matemática] L_ {2} (x) = \ sqrt {1 + 4 + 9} = \ sqrt {14} \, => \ hat {x } =… [/ Math] (dejado para el lector también).

Puede obtener más información sobre este tema (fascinante) aquí [7].

Para una implementación de los diferentes métodos enumerados anteriormente en Python , recomiendo leer los primeros párrafos de la documentación de scikit-learn [8] [9].

¡Disfrutar!

Notas al pie

[1] Media – Wikipedia

[2] Desviación estándar – Wikipedia

[3] Espacio métrico – Wikipedia

[4] Análisis de conglomerados – Wikipedia

[5] L ^ 2-Norma – de Wolfram MathWorld

[6] Espacio Lp – Wikipedia

[7] Escalado de características – Wikipedia

[8] scikit-learn: aprendizaje automático en Python

[9] 4.3. Datos de preprocesamiento

La normalización de datos en el aprendizaje automático se llama escalamiento de características . Hay tres métodos principales:

Reescalado (también llamado escalado min-max)

[matemáticas] x_ {norma} = \ frac {x – x_ {min}} {x_ {max} – x_ {min}} [/ matemáticas]

Los datos se transforman a una escala de [matemáticas] [0,1] [/ matemáticas].

Estandarización

[matemáticas] x_ {norma} = \ frac {x – \ mu} {\ sigma} [/ matemáticas]

Los datos se normalizan a un puntaje Z, o puntaje estándar.

Escalando a la longitud de la unidad

[matemáticas] x_ {norma} = \ frac {x} {|| x ||} [/ matemáticas]

donde [math] || x || [/ math] es la longitud euclidiana del vector de características.

En mi opinión, el escalamiento min-max debería evitarse si es posible, porque las entidades con distribuciones de cola larga estarán dominadas por entidades con distribuciones uniformes. La estandarización resuelve principalmente este problema, pero no se puede aplicar cuando los datos tienen que ajustarse dentro de límites exactos, como ocurre con muchos algoritmos de redes neuronales.