Redes neuronales y Bootstrap
Publicado por José Manuel (8 intervenciones) el 28/10/2020 12:07:31
Buenos día a todos.
Traigo al foro una consulta, que aunque muy avanzada para mí, creo que va a ser sencilla para vosotros.
Estoy preparando un modelo de Red Neuronal Artificial, con MatLab (dentro de mi trabajo de tesis doctoral), y necesito aplicarle una técnica de inferencia para estimar el error, y también los intervalos de confianza. Como es natural he iniciado el proceso investigando en i-net, y he encontrado en los foros de mathworks, un código, que me parecía atractivo (un tanto desactualizado en algunas funciones) y sencillo, y que creo podría servirme. Pero, cual ha sido mi decepción cuando al chequearlo he comprobado que no funciona.
Alguien podría sugerirme, ¿por qué no funciona bien?. esta hecho con unos datos de ejemplo que lógicamente no son los míos (los que yo usaría se corresponden con una matriz mucho más grande, pero eso será harina de otro costal. Hay que dar un primer paso, y con mi nivel de matlab, me he tropezado ya en dicho primer paso.
Os adjunto a continuación el código MatLab, que he copiado del ejemplo citado.
Muchas gracias, con antelación, al sabio que lo resuelva.
Un saludo.
José Manuel
Traigo al foro una consulta, que aunque muy avanzada para mí, creo que va a ser sencilla para vosotros.
Estoy preparando un modelo de Red Neuronal Artificial, con MatLab (dentro de mi trabajo de tesis doctoral), y necesito aplicarle una técnica de inferencia para estimar el error, y también los intervalos de confianza. Como es natural he iniciado el proceso investigando en i-net, y he encontrado en los foros de mathworks, un código, que me parecía atractivo (un tanto desactualizado en algunas funciones) y sencillo, y que creo podría servirme. Pero, cual ha sido mi decepción cuando al chequearlo he comprobado que no funciona.
Alguien podría sugerirme, ¿por qué no funciona bien?. esta hecho con unos datos de ejemplo que lógicamente no son los míos (los que yo usaría se corresponden con una matriz mucho más grande, pero eso será harina de otro costal. Hay que dar un primer paso, y con mi nivel de matlab, me he tropezado ya en dicho primer paso.
Os adjunto a continuación el código MatLab, que he copiado del ejemplo citado.
Muchas gracias, con antelación, al sabio que lo resuelva.
Un saludo.
José Manuel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
X = [0:0.1:4]';
Y = sin(X)';
net = newff(minmax(X'),[21 1],{'tansig' 'purelin'}); % Create a neural network
net.trainParam.show = NaN; % don’t show learning curve plot
stats = bootstrp(10, @(X,Y) bootstrptst(X,Y,net), X,Y) % bootstrap
plot(stats) % plots how the network error responded to 10 training sessions using
% 41 samples resampled randomly from x and y variables
%%%%%%%%%%%%%%%%%%
% bootstrptst.m
%%%%%%%%%%%%%%%%%
function err = bootstrptst(p, t, mynet)
p = p'; % assuming samples are rows and input attributes are columns
t = t'; % assuming samples are rows and output attributes are columns
[mynet, TR, out] = train(mynet, p, t); %train
err = mse(out-t); % return error
Valora esta pregunta


0