Estoy perdido en la normalización, ¿podría alguien guiarme por favor?
Tengo valores mínimos y máximos, digamos -23.89 y 7.54990767, respectivamente.
Si obtengo un valor de 5.6878, ¿cómo puedo escalar este valor en una escala de 0 a 1?
normalization
Angelo
fuente
fuente
Respuestas:
Si desea normalizar sus datos, puede hacerlo como sugiere y simplemente calcular lo siguiente:
donde y son ahora sus datos normalizados . Como prueba de concepto (aunque no lo solicitó) aquí hay un código y un gráfico adjunto para ilustrar este punto:x=(x1,...,xn) zi ith
R
fuente
illustrate the point
de su respuesta (correcta).La fórmula general de una línea para reescalar linealmente los valores de datos que han observado min y max en un nuevo rango arbitrario min ' a max' es
fuente
a
yb
constantes, y luego simplemente aplicarnewvalue = a * value + b
.a = (max'-min')/(max-min)
yb = max - a * max
b = max' - a * max
Ob = min' - (a * min)
u = -1 + 2.*(u - min(u))./(max(u) - min(u));
.Aquí está mi implementación de PHP para la normalización:
Pero mientras construía mis propias redes neuronales artificiales, necesitaba transformar la salida normalizada de nuevo a los datos originales para obtener una buena salida legible para el gráfico.
La desnormalización utiliza la siguiente fórmula:
fuente
División por cero
Una cosa a tener en cuenta es que
max - min
podría ser igual a cero. En este caso, no querrás realizar esa división.El caso en el que esto sucedería es cuando todos los valores de la lista que intenta normalizar sean iguales. Para normalizar dicha lista, cada elemento sería
1 / length
.Ejemplo:
fuente
normalize([12, 20, 10])
salidas[0.2, 1.0, 0.0]
, que es lo mismo que obtendría con(val - min) / (max - min)
.la respuesta es correcta pero tengo una sugerencia, ¿qué pasa si sus datos de entrenamiento se enfrentan a algún número fuera de rango? podrías usar la técnica de aplastar. se garantizará que nunca saldrá del alcance. En vez de esto
recomiendo usar esto
con aplastamiento como este en min y max de rango
y el tamaño de la brecha esperada fuera del rango es directamente proporcional al grado de confianza de que habrá valores fuera del rango.
para obtener más información, puede buscar en google: aplastar los números fuera de rango y consultar el libro de preparación de datos de "dorian pyle"
fuente
Prueba esto. Es consistente con la escala de funciones
fuente