% Se cargan los datos: >> load datosabalon %Se crean las matrices de entrada-salida para la red >> entrada=xudx(:,1:8)'; >> salida=xudx(:,9)'; % Se entrena la red, error medio cuadrático % deseado: 0.1 >> net = newrb(entrada,salida,0.1); NEWRB, neurons = 0, MSE = 0.168979 NEWRB, neurons = 25, MSE = 0.166998 . . NEWRB, neurons = 1050, MSE = 0.100486 % La función de entrenamiento incrementa el número de % neuronas hasta obtener el error deseado %Número de parametros de la capa de entrada >> size(net.IW{1}) ans = 1062 8 % 1062: Número de neuronas, 8 entradas >> size(net.b{1}) ans = 1062 1 % Número de parámetros de la segunda capa >> size(net.LW{2,1}) ans = 1 1062 >> size(net.b{2}) ans = 1 1 % Se aplica a la red los datos de entrada >> salida_est=sim(net,entrada); % Se aproxima la salida [N,K]=size(salida_est); salida_esta=ones(1,K); for i=1:K if (salida_est(1,i)< 0.25) salida_esta(1,i)=0; else if ((salida_est(1,i) >= 0.25) & (salida_est(1,i) < 0.75)) salida_esta(1,i)=0.5; else salida_esta(1,i)=1; end end end % Se visualizan los resultados >> plot(salida(1,400:450),'o'); >> hold on >> plot(salida_esta(1,400:450),'*g'); >> error=1/2.*(salida-salida_est).^2; >> plot(error(1,400:450)); % Nótese que no se ha obtenido un buen modelo, el % problema abordado es de clasificación, por lo que la % salida debería definirse por: % M=[1 0 0]; I=[0 1 0]; F=[0 0 1] | |