what types of Network and training are suitable for returning a more precise value?

1 view (last 30 days)
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.
clc
disp('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

Accepted Answer

Greg Heath
Greg Heath on 4 Feb 2019
Plot your targets vs your inputs to see if some of the inputs are not worth using.
and/or
you can try rejecting inputs based on linear and quadratic models
Hope this helps
Thank you for formally accepting my answer
Greg

More Answers (1)

BERGHOUT Tarek
BERGHOUT Tarek on 3 Feb 2019

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!