Está en la página 1de 2

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERIA EN GEOLOGÍA, MINAS, PETRÓLEO Y


AMBIENTAL
INFORMÁTICA APLICADA

GRUPO 5
Integrantes:
Grace Carolina Aguayo Alcivar
María José Encalada Flores
Gissela Lizbeth Iza Arias
Yadira Alexandra Llumiquinga Pachacama
Diana Belén Tipantuña Zurita

INSTRUCTIVO PARA CORRER LA APLICACIÓN EN MATLAB

Explicación del código:


1. Teniendo la base de datos en Excel con datos de mes, temperatura promedio, máxima,
mínima y precipitación de cuatro días, además de los antecedentes de cantidad de lluvia; se
procede a clasificar el tipo de lluvia con los códigos binarios 1 0 0 (Nulo), 0 1 0 (Ligero) y, 0
0 1 (Moderado).
2. Para realizar el entrenamiento supervisado en Matlab se crea 3 vectores, correspondientes a
lluvias nulas, ligeras y moderadas; el vector de nulos (Vec_null) constará únicamente con los
valores donde para la columna de nulos, el valor sea 1; de la misma manera para el vector de
ligeras (Vec_Ligeras) y el de moderadas (Vec_Moderadas).
3. Para cargar los targets (o códigos binarios correspondientes al tipo de lluvia), se comienza un
ciclo for para cada uno de estos tipos y se asigna el código binario correspondiente, para esto
es necesario conocer cuántos valores tiene cada vector; por ejemplo, si el vector nulo tiene 13
valores, entonces:

for j=1:13
T_Null (: , j) = [1,0,0];
end
* (: , j) asigna el vector binario para todos los renglones en la columna “j” de la tabla T_Null.
4. Se genera un vector de entrada compuesto de los tres vectores característicos; el apóstrofe nos
permite transponer el vector como columna.
input = [Vec_null’ Vec_Ligeras’ Vec_Moderadas’];
5. Se genera un vector con los targets, pero este no lleva apóstrofes porque han sido previamente
acomodados como columna.
targets = [Vec_null Vec_Ligeras Vec_Moderadas];
6. Se crea la red neuronal utilizando el comando “patternnet” que clasifica las entradas de
acuerdo con los targets; esta permite que las entradas se interconecten con las capas ocultas
que asignemos hasta llegar a una salida; de igual manera se utiliza la función de
entrenamiento ‘trainlm’; por ejemplo, si asignamos 5 capas ocultas:
red = patternnet(5, ‘trainlm’);
7. Se deben establecer los parámetros para el entrenamiento de la red neuronal:
- El número máximo de épocas.
- Verificación de fallas: busca el error mínimo, dependiendo del número de fallas que se
establezca.
- Error mínimo permitido.
- Factores de aprendizaje: el primer factor se usa para modificar los pesos iniciales en
cuanto se haga un cambio en el entrenamiento; el segundo factor se usa para decrementar
los pesos al multiplicarlo por el valor dado y; el último factor para incrementar, con el fin
de acercarse al error mínimo global.
Los códigos para establecer cada parámetro descrito se muestran a continuación:
red.train.Param.epochs=(1000);
red.train.Param.max_fail=100;
red.train.Param.min_grad=1e-29;
red.train.Param.mu=0.1;
red.train.Param.mu_dec=0.1;
red.train.Param.mu_inc=10;
8. Se procede a configurar la red para que trabaje con las entradas y los targets, usando el
código:
configure(red, input, targets);
9. El set de entrenamiento se divide en tres partes: entrenamiento, validación y prueba.
El entrenamiento es donde ocurre todo el ajuste de pesos debe de tener la mayor cantidad de
datos, recomendable más del 50% de datos.
red.divide.Param.trainRatio=90/100 (para un 90% de los datos)
La validación nos ayuda a determinar si la red esta sobreentrenada o no.
red.divide.Param.valRatio=5/100 (para un 5% de los datos)
La prueba se le pasan datos que no fueron usados en el entrenamiento ni la validación, para
comprobar la eficiencia que tiene la red.
red.divide.Param.testRatio=5/100
10. Finalmente, se coloca la línea de entrenamiento de la red con las entradas para obtener los
targets o salidas.
[red, tr] = train(red, input, targets);
*tr nos permite obtener ciertos valores como el performace, errores, etc., que pueden resultar
interesantes para ver el funcionamiento de la red.
Para correr la aplicación:
1. Primero, subir los valores de los tres vectores característicos, como se lo indicó
anteriormente.
2. Luego, correr el código del script para entrenar la red neuronal, hasta que en la matriz de
confusión total nos dé un valor mayor al 95%, esto nos indica la eficiencia de la red.
3. Para obtener la predicción, en el Comand Window ingresar un vector transpuesto con los
valores de un día específico, antecedidos por la palabra red, de la siguiente manera:
red=([9 22 28 17 3.5 22 28 16 2.4 22 28 16 0.6]’)
Bibliografía
MathWorks,2020. Patternnet algoritm for classification [En linea]
Available at: https://la.mathworks.com/matlabcentral/answers/279891-patternnet-algorithm-for-classification

También podría gustarte