¿Cuál es la desviación estándar de la “ unidad ”?

Es una práctica común normalizar los datos para entrenar una red neuronal a una media cero y una desviación estándar de «unidad» para reducir los efectos de gradiente de explosión y desaparición, etc.

¿Qué significa «unidad» estándar aquí? Un ejemplo sería realmente útil.

Comentarios

  • Significa igual a 1. Para obtener que divida los valores por la desviación estándar de los datos originales . (La media cero proviene de restar la media).

Respuesta

Significa que está convirtiendo sus características de datos desde sus unidades originales (millas, dólares, tiempo transcurrido, …) a unidades de desviación estándar. Como lo solicitó, se muestra un ejemplo muy simple:

Suponga que desea predecir los precios de la vivienda a partir de dos características: número de dormitorios (unidad entera) y tamaño (en unidades de metros cuadrados), como los datos ficticios a continuación:

import numpy as np X = np.array([[1, 65],[3, 130],[2, 80],[2, 70],[1, 50]]) 

Observe que cada característica tiene una media y una desviación estándar muy diferentes

print("mean={}, std{}".format(X.mean(axis=0), X.std(axis=0)) 

Resultados: mean=[ 1.83333333, 78.33333333]), std=[ 0.68718427, 24.94438258])

Observó que el tamaño de la función tiene media y estándar más de 30 veces mayor que el número de dormitorios, esto produce distorsiones en algunos algoritmos de cálculo (como redes neuronales, svm , knn, etc.) donde algunas características con valores más grandes dominan completamente las otras con valores más pequeños. Para resolver eso, una práctica común y muy efectiva es transformar los datos a unidades de desviación estándar con media cero, es decir, resta la media y divide por la desviación estándar, como a continuación:

X_t = (X - X.mean(axis=0))/X.std(axis=0) 

La variable X_t (X transformada) contiene sus características en desviaciones estándar unitarias con media cero, imprimiendo X_t obtienes:

array([[-1.21267813, -0.53452248], [ 1.69774938, 2.07127462], [ 0.24253563, 0.06681531], [ 0.24253563, -0.33407655], [-1.21267813, -1.13586028], [ 0.24253563, -0.13363062]]) 

Mira cómo los números en ambas características tienen la misma magnitud. Si imprime X_t mean y std ahora obtiene

mean=[ 1.11022302e-16 2.08166817e-16], std=[ 1. 1.] 

como se esperaba.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *