I am working on the development of a Neural Network where I initially had 6 input data with the BackPropagation algorithm and the results after training the Network were close to what was expected. But for requirements, now I need to enter 20 input data.
The problem is that with this amount of data the result of the backpropagation network does not come close to what was expected. It is totally wrong.
My question is, what types of Network and training are suitable for returning a more precise value?
I attach the code for 17 input data.
clcdisp('Este programa utiliza una red neuronal feed-forward backprop')disp('para determinar la cantidad de horas hombre ')disp('que se requieren para fabricar un elemento')disp('con los parametros ingresados')disp('Ingrese las caracteristicas')load net7 % carga al archivo .mat que contiene a la red neuronal
A=input('Largo= '); % usuario ingresa el largo del elemento
B=input('Ancho= '); % usuario ingresa el ancho
C=input('Alto= '); % usuario ingresa el alto
D=input('Peso= '); % usuario ingresa el peso
E=input('Espesor promedio= '); % usuario ingresa el espesor promedio
F=input('area total= '); % usuario ingresa la superficie total
G=input('area planchas= ');H=input('area perfiles= ');I=input('area tubos= ');J=input('area cañerias= ');K=input('angulos= ');L=input('area canales= ');M=input('area fierro liso= ');N=input('area otros= ');O=input('cod costo= ');P=input('cod_fabrica= ');Q=input('cod_material= ');flag=1;while flag==1 if A < 0 || A > 250000 % establecer los límites de temperatura
msgbox('Largo fuera de rango') elseif B < 0 || B > 50000 % establecer los límites de presión
msgbox('ancho fuera de rango') elseif C<0 || C>20000 msgbox('alto fuera de rango') elseif D<0 || D>30000 msgbox('peso fuera de rango') elseif E<0 || E>70000 msgbox('espesor fuera de rango') elseif F<0 || F>2500 msgbox('superficie fuera de rango') elseif G<0 || H>200000 msgbox('HAY UNA VARIABLE fuera de rango') elseif I<0 || I>200000 msgbox('HAY UNA VARIABLE fuera de rango') elseif J<0 || J>200000 msgbox('HAY UNA VARIABLE fuera de rango') elseif K<0 || K>200000 msgbox('HAY UNA VARIABLE fuera de rango') elseif L<0 || L>20000 msgbox('HAY UNA VARIABLE fuera de rango') elseif M<0 || M>20000 msgbox('HAY UNA VARIABLE fuera de rango') elseif N<0 || N>20000 msgbox('HAY UNA VARIABLE fuera de rango') elseif O<0 || O>20000 msgbox('HAY UNA VARIABLE fuera de rango') elseif P<0 || P>20000 msgbox('HAY UNA VARIABLE fuera de rango') elseif Q<0 || Q>20000 msgbox('HAY UNA VARIABLE fuera de rango') else An=A/3045; % normaliza el largo digitada por el usuario
Bn=B/9090; % normaliza el ancho digitada por el usuario
Cn=C/32625; Dn=D/11937.5; En=E/157; Fn=F/228.2; Gn=G/130.2; Hn=H/97; In=I/13; Jn=J/22; Kn=K/110; Ln=L/39; Mn=M/1.7; Nn=N/0.5; On=O/42; Pn=P/3; Qn=Q/3; salida=sim(network1,[An;Bn;Cn;Dn;En;Fn;Gn;Hn;In;Jn;Kn;Ln;Mn;Nn;On;Pn;Qn]); % función sim
y1n=salida(1,:); % x1 salida de la red normalizada
y1=y1n*835.63; % x1 salida de la red escalada
fprintf('Las horas hombres necesarias para fabricar el elemento con las caracteristicas ingresadas son') disp(y1) end flag=input('Digite 2 para repetir salir: ');end
Best Answer