how can divide the sample into two part (training and test) in Narnet

Illustration
coqui - 2021-08-05T10:51:43+00:00
Question: how can divide the sample into two part (training and test) in Narnet

By using Matlab code the divide function which I have employed is divideblock therefore I necessarily divided the sample into three part : training, validation and test.   How I can decomposed the sample inti only two parts (training and test), what's the code which I must employed instead 'divideblock'.

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

 close all, clear all, clc, tic

 % help narnet
 T       = simplenar_dataset;
 sizeT   = size(T)        % [ 1 100 ]
 t       = cell2mat(T);    
 [ O N ] = size(t)        % [ 1 100 ]
 minmaxt = minmax(t)      % [ 0.16218  0.99991]
 MSE00   = var(t',1)      % 0.063306
 MSE00a  = var(t',0)      % 0.063945
 plot(t)

 FD = 1:2, H = 10         % nonoptimal default
 neto = narnet( FD , H )  % No semicolon
%  divideFcn: 'dividerand'
%  divideParam: .trainRatio, .valRatio, .testRatio
%  divideMode: 'time'
 neto.divideParam.valRatio = 0; 
 % The new defaults will be
 newtestratio  = 0.15 + ( 0.15/(0.7+0.15))*0.15 % 0.17647
 newtrainratio = 0.70 + ( 0.70/(0.7+0.15))*0.15 % 0.82353
 No     = N - max(FD)           % 98
 Ntsto = round(newtestratio*No) % 17
 Ntrno = No - Ntsto             % 81

 [ Xo, Xoi, Aoi, To ]       = preparets( neto, {}, {}, T );
 [ Oo No ]                  = size(To)  % [ 1 98 ]
 [ neto tro Yo Eo Xof Aof ] = train( neto, Xo, To, Xoi, Aoi );
 tro = tro     % No semicolon
%  trainInd: [1x81 double]
%  valInd:   [1x0  double]
%  testInd:  [1x17 double]
% num_epochs: 313
% vperf:         [1x314 double]  NaN(1,314)
% val_fail:      [1x314 double]  zeros(1,314)
% best_perf:  4.3277e-10
% best_vperf: NaN
% best_tperf:  2.0093e-09

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!