Main Content

mapminmax

Procesar matrices mediante la aplicación de valores mínimos y máximos de filas a [-1 1]

Descripción

ejemplo

Sugerencia

Para volver a escalar los datos para flujos de trabajo de deep learning, use el par nombre-valor de normalización para la capa de entrada.

[Y,PS] = mapminmax(X,YMIN,YMAX) usa una matriz de N por Q (X) y, opcionalmente, un valor mínimo y máximo de cada fila de Y (YMIN e YMAX) y devuelve una matriz de N por Q (Y), y una configuración de proceso que permite el procesamiento uniforme de valores (PS).

mapminmax procesa las matrices normalizando los valores mínimos y máximos de cada fila como [YMIN, YMAX].

[Y,PS] = mapminmax(X,FP) usa parámetros como una estructura: FP.ymin, FP.ymax.

Y = mapminmax('apply',X,PS) devuelve Y, dadas X y las configuraciones PS.

X = mapminmax('reverse',Y,PS) devuelve X, dadas Y y las configuraciones PS.

dx_dy = mapminmax('dx_dy',X,Y,PS) devuelve la derivada inversa.

Ejemplos

contraer todo

Este ejemplo muestra cómo dar formato a una matriz de manera que los valores mínimos y máximos de cada fila se apliquen al intervalo predeterminado [-1,+1].

x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0]
[y1,PS] = mapminmax(x1)

A continuación, aplique la misma configuración de procesamiento a los nuevos valores.

x2 = [5 2 3; 1 1 1; 6 7 3; 0 0 0]
y2 = mapminmax('apply',x2,PS)

Invierta el procesamiento de y1 para volver a obtener x1.

x1_again = mapminmax('reverse',y1,PS)

Argumentos de entrada

contraer todo

Matriz que quiere procesar, especificada como una matriz de N por Q.

Valor mínimo de cada fila de la matriz de salida Y, especificado como un escalar.

Valor máximo de cada fila de la matriz de salida Y, especificado como un escalar.

Argumentos de salida

contraer todo

Matriz procesada, devuelta como una matriz de N por Q.

Configuraciones de proceso que permiten conseguir un procesamiento uniforme de valores, devueltas como una estructura.

Más acerca de

contraer todo

Normalizar entradas y objetivos usando mapminmax

Antes del entrenamiento, suele ser útil escalar las entradas y los objetivos, de forma que siempre se encuentren dentro de un intervalo determinado. La función mapminmax escala las entradas y los objetivos para que se encuentren dentro del intervalo [–1,1]. El siguiente código muestra cómo usar esta función.

[pn,ps] = mapminmax(p);
[tn,ts] = mapminmax(t);
net = train(net,pn,tn);

Las entradas y objetivos de la red originales se especifican en las matrices p y t. Las entradas y objetivos normalizados pn y tn devueltos se encontrarán dentro del intervalo [–1,1]. Las estructuras ps y ts contienen las configuraciones, en este caso, los valores mínimos y máximos de las entradas y objetivos originales. Después de entrenar la red, las configuraciones de ps se deberían usar para transformar cualquier entrada futura aplicada a la red. Se convierten en parte efectiva de la red, igual que los pesos y los sesgos de la red.

Si mapminmax se usa para escalar los objetivos, la salida de la red se entrenará para producir salidas en el intervalo [–1,1]. Para convertir estas salidas de nuevo a las mismas unidades usadas para los objetivos originales, use las configuraciones ts. El siguiente código simula la red entrenada en el código anterior y, después, convierte la red de nuevo a sus unidades originales.

an = sim(net,pn);
a = mapminmax('reverse',an,ts);

La salida de la red an corresponde a los objetivos normalizados tn. La salida de la red desnormalizada a se especifica en las mismas unidades que los objetivos originales t.

Si mapminmax se usa para preprocesar los datos del conjunto de entrenamiento, cuando la red entrenada se use con nuevas entradas se preprocesarán con los mínimos y máximos calculados para el conjunto de entrenamiento almacenado en las configuraciones ps. El siguiente código aplica un nuevo conjunto de entradas a la red entrenada.

pnewn = mapminmax('apply',pnew,ps);
anewn = sim(net,pnewn);
anew = mapminmax('reverse',anewn,ts);

Para la mayoría de las redes, incluida feedforwardnet, estos pasos se completan de forma automática, por lo que solo tendrá que usar el comando sim.

Algoritmos

Se da por supuesto que X solo tiene valores reales finitos y que los elementos de cada fila no son todos iguales. (Si xmax=xmin, o si xmax o xmin no son finitos, entonces y=x, y no se produce ningún cambio).

y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin;

Historial de versiones

Introducido en R2006a

Consulte también

| |