Разделение данных в командном поезде нейронной сети MATLAB

При обучении нейронной сети в MATLAB я использую команду "train". Является ли эта команда автоматическим разделением данных на обучающие, тестирующие и проверочные наборы, или мы должны разделить данные вручную.

1 ответ

Да, это так. Но мы можем разделить данные вручную, если захотим. net.divideFcn а также net.divideParam поля сетевого объекта должны использоваться:

t=0:0.05:8; x= sin(t);
net = feedforwardnet(3);
net.divideFcn= 'dividerand'; % divide the data randomly 
net.divideParam.trainRatio= 0.7; % we use 70% of the data for training 
net.divideParam.valRatio= 0.3; % 30% is for validation
net.divideParam.testRatio= 0; % 0% for testing
net = train(net,t,x);
plot(t,x,t,net(t));

Вот пример ручного разделения данных:

net.divideFcn= 'divideind'; % divide the data manually
net.divideParam.trainInd= 1:100; % training data indices 
net.divideParam.valInd= 101:140; % validation data indices 
net.divideParam.testInd= 141:161;  % testing data indices 
Другие вопросы по тегам