Você está na página 1de 9

Ejercicio de Clasificacin

Supervisada usando MATLAB


Maracaibo, 27 de Enero del 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Ejemplo clsico de clasificacin: Flor Iris.
El set de datos contiene 150 instancias con 4 atributos
identificados y su respectiva clase.
Los atributos son (cm):
Longitud del spalo
Ancho del spalo
Longitud del ptalo
Ancho del ptalo
La clase puede ser:
Iris Setosa
Iris Versicolour
Iris Virginica
EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Fases de creacin del clasificador
(usando una Red Neuronal):
Especificacin
Inicializacin
Entrenamiento
Prueba
EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Especificacin de la Red Neuronal
En esta etapa se define la estructura que tendr la red, esto es
el nmero de neuronas en cada capa
En MATLAB:
miRed =newff(Atributos, Clases, ...
Nhid, ... %Neuronas en la capa oculta
{'logsig', 'purelin'},... %Funciones en las neuronas
'trainlm',... %Algoritmo entrenamiento
'learngdm',... %Algoritmo clculo de bias y pesos
'mse',... %Objetivo a minimizar
{'mapstd'},... %Operaciones de pre-procesamiento
{ },... %Operaciones de post-procesamiento
'divideind'); %Divisin de datos en conjuntos

logsig indica el uso de la funcin Sigmoide
EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Seleccin del nmero de neuronas de la capa
intermedia
Se dispone de 150 observaciones pero se fraccionar el
conjunto en 60% ent, 20% val y 20% pru, por lo que se
dispone de 90 observaciones para entrenamiento
Para una mejor generalizacin, se sugiere que la
cantidad de incgnitas sea menor a 0.5x90 = 45
Si se toma N = 10, se tendran un sobreajuste segn se
muestra a continuacin:
(4+1)x10 + (10+1)x3 = 83
N.ent N.sal
Luego N = 5 es un nmero de neuronas adecuado
(4+1)x5 + (5+1)x3 = 43
N.ent N.sal

EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Inicializacin de la Red Neuronal
La inicializacin consiste en asignar valores iniciales a los
pesos. Para este ejercicio se asignarn valores aleatorios.
En MATLAB, esto se lleva a cabo de la siguiente forma:
miRed.initFcn = 'initlay';
miRed.layers{1}.initFcn = 'initwb';
miRed.layers{2}.initFcn = 'initwb';
miRed.inputWeights{1, 1}.initFcn = 'rands';
miRed.layerWeights{2, 1}.initFcn = 'rands';
miRed.biases{1}.initFcn = 'rands';
miRed.biases{2}.initFcn = 'rands';
miRed = init(miRed);

rands es la funcin que inicia valores aleatorios

EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Entrenamiento de la Red Neuronal
Ajusta los pesos con el objetivo de reducir el error en los
datos de entrenamiento
En MATLAB se pueden especificar como criterios de
parada un alcanzar nmero de epoch, un error mnimo, o
segn el error sobre un conjunto de validacin:
miRed.trainParam.epochs = 200;
miRed.trainParam.goal = 1e-2;
modRN.trainParam.showCommandLine = 0;
modRN.trainParam.showWindow = 0;
[miRed, tr, Y, E] = train(miRed, SRC, TGT);
Donde P son los atributos de los datos de entrenamiento,
T el cdigo de la clase para cada dato, y VAL es una
estructura con los datos de validacin: VAL.P y VAL.T
EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Pesos y bias
La red una vez entrenada la hemos almacenado en la variable
miRed, esta variable es una estructura con la informacin de
especificacin, inicializacin entrenamiento y los parmetros
propios de la red (pesos/bias)
Los pesos de la capa de entrada estn en miRed.IW{1} en
forma de matriz con tantas filas como neuronas tiene la capa
siguiente, y tantas columnas como neuronas tiene la capa de
entrada
Los pesos de las capas intermedias estn en miRed.LW{i,i-1}
con i = 2, 3, , #capOcultas, estos pesos estn almacenados
en forma de matriz con tantas filas como neuronas tenga la
capa siguiente y tantas columnas como neuronas tenga la
capa i
EN 2010
Ejercicio de Clasificacin
Supervisada usando MATLAB
Prueba de la Red Neuronal
La red entrenada se usa para clasificar un conjunto de
prueba
En MATLAB:

[salEst] = sim(miRed, PRU.P);

EN 2010

Você também pode gostar