La transformación de las distribuciones de aprendizaje automático

Aunque las estadísticas se basan en la expectativa de que las funciones tienen ciertas distribuciones de valores, aprendizaje de máquinas en general, no tiene estas limitaciones. Un algoritmo de aprendizaje automático no necesita saber de antemano el tipo de distribución de datos que va a funcionar, pero se aprende directamente a partir de los datos utilizados para el entrenamiento.

Video: TensorFlow: Machine Learning for Everyone

En probabilidad, una distribución es una tabla de valores o una función matemática que une cada posible valor de una variable a la probabilidad de que dicho valor podría ocurrir. Las distribuciones de probabilidad son generalmente (pero no exclusivamente) representados en los gráficos cuyo eje de abscisas representa los valores posibles de la variable y cuyo eje ordinal representa la probabilidad de ocurrencia. La mayoría de los modelos estadísticos se basan en una distribución normal, una distribución que es simétrica y tiene una forma de campana característica.

Incluso cuando se utilizan algoritmos de aprendizaje prestadas de las estadísticas, que no será necesario transformar una distribución real para parecerse a una distribución normal o cualquier otra distribución estadística notable (como uniforme o distribuciones de Poisson). algoritmos de aprendizaje automático suelen ser lo suficientemente inteligente para saber cómo tratar con cualquier distribución presente en las características por sí mismos. Sin embargo, incluso si la transformación de las distribuciones reales, no es necesario que un algoritmo de aprendizaje automático para que funcione correctamente, que todavía puede ser beneficioso para las siguientes razones:

  • Para hacer que la función de coste minimizar mejor el error de las predicciones
  • Para hacer que el algoritmo converge correctamente y más rápido

Puede aplicar transformaciones a la variable de respuesta para minimizar el peso de cualquier caso extremo. Al predecir los valores (como en un problema de regresión), y algunos de los valores son demasiado extremas con respecto a la mayoría de los valores, es posible aplicar transformaciones que tienden a acortar la distancia entre los valores.

En consecuencia, cuando se hace esfuerzos para minimizar el error, el algoritmo no se centran demasiado en los errores extremos y obtener una solución general. En tales casos, normalmente se elige la transformación logarítmica, pero esta transformación requiere valores positivos. Si se trabaja con números positivos y acaba el problema es el cero, agregar 1 a sus valores de manera que ninguno de ellos será cero. (El resultado de log (1) es en realidad cero, lo que es un nuevo punto de partida conveniente.)

Si no puede utilizar una transformación logarítmica, aplique una raíz cúbica, que conserva el signo. En algunos casos (cuando los valores extremos son enormes), es posible que desee aplicar la transformación inversa lugar (es decir, dividir 1 por el valor de su respuesta).

Algunos algoritmos de aprendizaje automático basado en el descenso de gradiente o en medidas de distancia (como algoritmos tales como K-means y K-vecinos más cercanos) son bastante sensibles a la escala de los valores numéricos proporcionados. En consecuencia, para que el algoritmo converja más rápidamente o para proporcionar una solución más exacta, cambiar la escala de la distribución es necesario. Reescalado muta el rango de los valores de las características y puede afectar a la varianza, también. Puede realizar funciones de cambio de escala de dos maneras:

  • El uso de la normalización estadística (puntuación z normalización): Centrar la media a cero (restando la media) y luego dividir el resultado por la desviación estándar. Después de esta transformación, se encuentra la mayor parte de los valores en el rango de -3 a +3.
  • Usando la transformación min-max (o normalización): Eliminar el valor mínimo de la función y, a continuación dividir por el (valor mínimo valor máximo menos) gama. Esta ley cambia la escala a todos los valores de 0 a 1. Es recomendable escribir la estandarización cuando la desviación estándar original es demasiado pequeño (valores originales son demasiado cerca, como si todos ellos se pegan entre sí alrededor de la media) o cuando se desea preservar los valores cero en una matriz dispersa que explora la matemáticas de aprendizaje de la máquina).

Video: Campo electrico creado por distribuciones discretas de cargas

Tanto R y Python proporcionan funciones para la transformación de distribución. Aparte de las funciones matemáticas de registro y exp, que están disponibles de inmediato en R y requiere la importación del paquete NumPy en Python, estandarización y normalización min-max requiere un poco más de trabajo.

En R, a lograr la normalización usando la función de escala (TRY ayuda (escala) en I), pero la normalización min-max requiere que definir su propia función:

mínimo máximo lt; - función (x)

{Return ((x - min (x, na.rm = TRUE)) /

(Max (x, na.rm = TRUE) - min (x, na.rm = TRUE)))}

En Python, el uso de funciones y clases de Scikit-learn preprocesamiento módulo, como: sklearn.preprocessing.scale, sklearn.preprocessing.StandardScaler, y sklearn.preprocessing.MinMaxScaler.

Artículos Relacionados