Datos numéricos: Normalización

Después de examinar tus datos a través de técnicas estadísticas y de visualización, debes transformar los datos de forma que tu modelo se entrene más con eficacia. El objetivo de normalization es transformar para que los atributos estén en una escala similar. Por ejemplo, considera los siguientes dos atributos:

  • El atributo X abarca el rango de 154 a 24,917,482.
  • El atributo Y abarca el rango de 5 a 22.

Estas dos funciones abarcan rangos muy diferentes. La normalización puede manipular X y Y para que abarquen un rango similar, quizás de 0 a 1.

La normalización proporciona los siguientes beneficios:

  • Ayuda a los modelos a converger más rápido durante el entrenamiento. Cuando diferentes atributos tienen distintos rangos, el descenso de gradientes "rebotar" y una convergencia lenta. Dicho esto, los optimizadores más avanzados, como Adagrad y Adam lo protegen contra este problema y cambian la tasa de aprendizaje eficaz con el tiempo.
  • Ayuda a los modelos a inferir mejores predicciones. Cuando diferentes atributos tienen distintos rangos, el resultado modelo podría hacer predicciones menos útiles.
  • Ayuda a evitar la “trampa de NaN” cuando los valores de los atributos son muy altos. NaN es una abreviatura de no es un número. Cuando un valor en un modelo supera el límite de precisión de punto flotante, el sistema establece el valor en NaN en su lugar de un número. Cuando un número en el modelo se convierte en NaN, otros números en el modelo finalmente se convierte en un NaN.
  • Permite que el modelo aprenda los pesos apropiados para cada atributo. Sin el escalamiento de atributos, el modelo presta demasiada atención a funciones con rangos amplios y no hay suficiente atención a las los rangos estrechos.

Recomendamos normalizar los atributos numéricos que cubran distintos rangos (por ejemplo, ingresos y edad). Recomendamos normalizar un único atributo numérico que abarque un rango amplio como city population.

Ten en cuenta las siguientes dos funciones:

  • El valor más bajo del atributo A es -0.5 y el más alto es +0.5.
  • El valor más bajo del atributo B es -5.0 y el más alto, +5.0.

Los atributos A y B tienen intervalos relativamente estrechos. Sin embargo, la función B es 10 veces más ancho que el intervalo del atributo A. Por lo tanto:

  • Al comienzo del entrenamiento, el modelo supone que el atributo A es diez veces más alto. más "importante" que el elemento B.
  • El entrenamiento tardará más de lo que debería.
  • El modelo resultante puede no ser óptimo.

El daño general debido a la no normalización será relativamente pequeño. Sin embargo, recomendamos normalizar el Atributo A y el Atributo B a la misma escala. quizás de -1.0 a +1.0.

Ahora, considera dos atributos con una mayor disparidad de rangos:

  • El valor más bajo del atributo "C es -1 y el más alto es +1.
  • El valor más bajo del atributo D es +5,000 y el más alto, +1,000,000,000.

Si no normalizas los atributos C y D, es probable que tu modelo ser subóptimo. Además, el entrenamiento llevará mucho más tiempo converjan o no converjan por completo.

En esta sección, se abordan tres métodos de normalización populares:

  • escalamiento lineal
  • Escalamiento de puntuación Z
  • escalamiento logarítmico

Esta sección también abarca recorte Aunque no es un verdadero con una técnica de normalización, el recorte acopla los atributos numéricos o rangos que generan mejores modelos.

Escalamiento lineal

Escalamiento lineal (con mayor frecuencia abreviado a solo escalamiento) significa convertir los valores de punto flotante de su rango natural dentro de un rango estándar, por lo general de 0 a 1, o De -1 a +1.

El escalamiento lineal es una buena opción cuando se cumplen todas las condiciones siguientes:

  • Los límites inferior y superior de tus datos no cambian mucho con el tiempo.
  • El atributo contiene pocos valores atípicos o ninguno, y esos valores no son extremo.
  • El atributo se distribuye de manera aproximadamente uniforme en su rango. Es decir, un histograma mostrará barras prácticamente parejas para la mayoría de las edades.

Supongamos que el age humano es un atributo. El escalamiento lineal es una buena normalización técnica para age por el siguiente motivo:

  • Los límites inferior y superior aproximados son de 0 a 100.
  • age contiene un porcentaje relativamente pequeño de valores atípicos. Solo alrededor del 0.3% de la población es superior a 100.
  • Aunque algunas edades están mejor representadas que otras, una gran conjunto de datos debe contener suficientes ejemplos de todas las edades.

Verifica tus conocimientos

Supongamos que tu modelo tiene un atributo llamado net_worth que contiene la red de personas diferentes. ¿El escalamiento lineal sería una buena normalización técnica para net_worth? ¿Por qué?

Escalamiento de puntuación Z

Una puntuación Z es la cantidad de desviaciones estándar que tiene un valor respecto de la media. Por ejemplo, un valor que tenga 2 desviaciones estándar mayor que la media tiene un puntaje z de +2.0. Un valor que es 1.5 desviaciones estándar menor que la media tiene una puntuación Z de -1,5.

Representar un atributo con escalamiento de puntuación Z significa almacenar el atributo Puntuación Z en el vector de atributos Por ejemplo, en la siguiente figura, se muestran dos Histogramas:

  • A la izquierda, una distribución normal clásica.
  • A la derecha, la misma distribución normalizada por escala de puntuación Z.
Figura 4: Dos histogramas: ambos muestran distribuciones normales con
           la distribución idéntica. El primer histograma, que contiene datos sin procesar
           tiene una media de 200 y una desviación estándar de 30. El segundo
           histograma, que contiene una versión de puntuación Z de la primera
           tiene una media de 0 y una desviación estándar de 1.
Figura 4: Datos sin procesar (izquierda) frente a puntuación Z (derecha) para una normal distribución.

La escala de puntuación Z también es una buena opción para datos como los que se muestran en la siguiente figura, que tiene una distribución vagamente normal.

Figura 5: Dos histogramas de forma idéntica, cada uno con una pronunciación
            se eleva hasta una meseta y, luego,
un descenso relativamente rápido, seguido de
            deterioro gradual. Un histograma ilustra la
            la distribución de los datos sin procesar; el otro histograma ilustra el
            de los datos sin procesar normalizados mediante el escalamiento de puntuación Z.
            Los valores en el eje X de los dos histogramas son muy diferentes.
            El histograma de datos sin procesar abarca el dominio 0 a 29,000, mientras que
            el histograma con escala z varía entre -1 y aproximadamente +4.8
Figura 5: Datos sin procesar (izquierda) frente al escalamiento de puntuación Z (derecha) para un de distribución normal no clásica.

La puntuación z es una buena opción cuando los datos siguen una distribución normal o una distribución, algo similar a una distribución normal.

Ten en cuenta que algunas distribuciones pueden ser normales en la mayor parte pero también pueden contener valores atípicos extremos. Por ejemplo, casi todos los puntos de un atributo net_worth pueden encajar perfectamente en 3 desviaciones estándar, pero algunos ejemplos de esta función podrían ser cientos de desviaciones estándar de la media. En estas situaciones, puedes combinar el escalamiento de puntuación Z con Es otra forma de normalización (por lo general, recorte) para manejar esta situación.

Ejercicio: Comprueba tus conocimientos

Supongamos que tu modelo se entrena con un atributo llamado height que sostiene al adulto. de diez millones de mujeres. ¿El escalamiento de puntuación Z sería una buena normalización técnica para height? ¿Por qué?

Escalamiento logarítmico

El escalamiento logarítmico calcula el logaritmo del valor sin procesar. En teoría, la el logaritmo podría ser cualquier base; en la práctica, el escalamiento logarítmico suele calcular el logaritmo natural (ln).

El escalamiento logarítmico es útil cuando los datos se ajustan a una distribución de ley de poder. De manera casual, una distribución de una ley de poder se ve de la siguiente manera:

  • Los valores bajos de X tienen valores muy altos de Y.
  • A medida que aumentan los valores de X, los valores de Y disminuyen con rapidez. Por lo tanto, los valores altos de X tienen valores muy bajos de Y.

Las calificaciones de las películas son un buen ejemplo de la distribución de una ley de poder. En la siguiente observa lo siguiente:

  • Algunas películas tienen muchas calificaciones de los usuarios. (Los valores bajos de X tienen un valor alto valores de Y).
  • La mayoría de las películas tienen muy pocas calificaciones de los usuarios. (Los valores altos de X son bajos valores de Y).

El escalamiento logarítmico cambia la distribución, lo que ayuda a entrenar un modelo que hacer mejores predicciones.

Figura 6: Dos gráficos que comparan los datos sin procesar con el registro de los datos sin procesar.
            El gráfico de datos sin procesar muestra muchas calificaciones de usuarios en la cabeza, seguidas
            por una cola larga. El grafo logarítmico tiene una distribución más uniforme.
Figura 6. Comparar una distribución sin procesar con su registro

Como segundo ejemplo, las ventas de libros se ajustan a la distribución de una ley de poder por los siguientes motivos:

  • La mayoría de los libros publicados venden una pequeña cantidad de copias, quizás una o doscientas.
  • Algunos libros venden una cantidad moderada de copias, miles.
  • Solo unos pocos más vendidos venden más de un millón de copias.

Supongamos que entrenas un modelo lineal para encontrar la relación por ejemplo, portadas de libros para reservar ventas. Un modelo lineal que se entrena con valores sin procesar tienen que encontrar algo sobre portadas para libros que venden un millón de copias es 10,000 más potente que las portadas de libros que solo venden 100 copias. Sin embargo, el escalamiento logarítmico de todas las cifras de ventas hace que la tarea sea mucho más factible. Por ejemplo, el logaritmo de 100 es el siguiente:

  ~4.6 = ln(100)

mientras que el logaritmo de 1,000,000 es:

  ~13.8 = ln(1,000,000)

Entonces, el logaritmo de 1,000,000 es solo alrededor de tres veces más grande que el logaritmo de 100. Probablemente podrías imaginar que la portada de un libro de éxitos en ventas es tres veces. más poderosa (de alguna manera) que una portada de libro en miniatura.

Recorte

El recorte es una técnica para minimizar la influencia de valores atípicos extremos. En resumen, el recorte suele limitar (reduce) el valor de los valores atípicos a un valor máximo específico. El recorte es un una idea extraña y, aun así, puede ser muy eficaz.

Por ejemplo, imagina un conjunto de datos que contiene un atributo llamado roomsPerPerson, que representa el número de habitaciones (el total de habitaciones dividida) por cantidad de ocupantes) de varias casas. El siguiente gráfico muestra que más de El 99% de los valores de atributos se ajustan a una distribución normal (aproximadamente, una media de 1.8 y una desviación estándar de 0.7). Sin embargo, la función contiene algunos valores atípicos, algunos extremos:

Figura 7: Un gráfico de ambientesPorPersona en el que casi todos los valores
            se agrupan entre 0 y 4, pero tienen una cola muy larga
            con un alcance de 17 salas por persona
Figura 7: Es normal, aunque no del todo normal.

¿Cómo puedes minimizar la influencia de esos valores atípicos extremos? Bueno, un histograma no es una distribución uniforme, una distribución normal o una ley de potencia distribución. ¿Qué sucede si solo limitas o recortas el valor máximo de ¿roomsPerPerson en un valor arbitrario, digamos 4.0?

Un gráfico de ambientesPorPersona en el que todos los valores se encuentran entre 0 y
            4. El diagrama tiene forma de campana, pero hay una colina anormal en 4.0
Figura 8: Recorte de los valores del atributo a 4.0.

Recortar el valor del atributo en 4.0 no significa que el modelo los ignore todas valores superiores a 4.0. En cambio, significa que todos los valores que fueron mayores a 4.0 ahora se convierten en 4.0. Esto explica la elevación particular en 4.0. Pese a esa colina, el conjunto de atributos ajustado ahora es más útil que los datos originales.

Espera un momento. ¿Se puede reducir cada valor atípico a algún valor arbitrario umbral? Sí.

También puedes recortar valores después de aplicar otras formas de normalización. Por ejemplo, supongamos que utilizas el escalamiento de puntuación Z, pero algunos valores atípicos tienen absolutos mayores que 3. En ese caso, podrías hacer lo siguiente:

  • Recorta puntos Z superiores a 3 para que sean exactamente 3.
  • Corta las puntuaciones Z inferiores a -3 para que sean exactamente -3.

El recorte evita que tu modelo sobreindexe datos sin importancia. Sin embargo, algunos valores atípicos son importantes, así que recorta los valores con cuidado.

Resumen de las técnicas de normalización

Técnica de normalizaciónFormulaCuándo debe utilizarse
Escalamiento lineal $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Cuando la función se distribuye de manera uniforme entre en un rango fijo.
Escalamiento de puntuación Z $$ x' = \frac{x - μ}{σ}$$ Cuando la distribución de atributos no contiene valores atípicos extremos.
Escalamiento logarítmico $$ x' = log(x)$$ Cuando el atributo cumple con la ley de potencia.
Recorte Si USD x > max$, establece $x' = máx.$
Si USD x < mín$, establecer $x' = min$
Cuando el atributo contiene valores atípicos extremos.

Ejercicio: Pon a prueba tus conocimientos

¿Qué técnica sería la más adecuada para normalizar un atributo con la siguiente distribución?

Un histograma que muestra un clúster de datos con valores en el rango de 0 a
          200,000. La cantidad de datos aumenta gradualmente para el rango.
          de 0 a 100,000 y, luego, disminuye gradualmente de 100,000 a
          200,000.

Escalamiento de puntuación Z
Los puntos de datos generalmente se ajustan a una distribución normal, entonces puntuación Z el ajuste los obligará a estar dentro del rango de -3 a +3.
Escalamiento lineal
Repasa los debates sobre las técnicas de normalización que se presentan en esta página. y vuelve a intentarlo.
Escalamiento logarítmico
Repasa los debates sobre las técnicas de normalización que se presentan en esta página. y vuelve a intentarlo.
Recorte
Repasa los debates sobre las técnicas de normalización que se presentan en esta página. y vuelve a intentarlo.

Supongamos que estás desarrollando un modelo que predice la latencia la productividad en función de la temperatura que se mide en el centro de datos. Casi todos los valores temperature de tu conjunto de datos caen entre 15 y 30 (Celsius), con las siguientes excepciones:

  • Una o dos veces al año, en días muy calurosos, algunos valores entre 31 y 45 están registrados en temperature.
  • Cada 1,000 puntos de temperature se establece en 1,000 en lugar de la temperatura real.

¿Cuál sería una técnica de normalización razonable para temperature?

Recorta los valores atípicos entre 31 y 45, pero borra los valores atípicos con un valor de 1,000

Los valores de 1,000 son errores y se deben borrar en lugar de recortado.

Los valores entre 31 y 45 son datos legítimos. El recorte probablemente sea una buena idea para estos valores, si suponemos que conjunto de datos no contiene suficientes ejemplos en este rango de temperatura para para entrenarlo para que haga buenas predicciones. Sin embargo, durante la inferencia, ten en cuenta que el modelo recortado haría la misma predicción para una temperatura de 45 grados y una temperatura de 35.

Recortar todos los valores atípicos
Repasa los debates sobre las técnicas de normalización que se presentan en esta página. y vuelve a intentarlo.
Borrar todos los valores atípicos
Repasa los debates sobre las técnicas de normalización que se presentan en esta página. y vuelve a intentarlo.
Borrar los valores atípicos entre 31 y 45, pero recortar valores atípicos con un valor de 1,000.
Repasa los debates sobre las técnicas de normalización que se presentan en esta página. y vuelve a intentarlo.