フィルターのクリア

Cross Validation in Neural Network ?

3 ビュー (過去 30 日間)
Narges Sedre
Narges Sedre 2018 年 12 月 4 日
回答済み: Greg Heath 2018 年 12 月 5 日
i want to do a cross validation 10% of the data should be for training and the rest is for test .
i dont know how to perform that.
filename='FIFA7.xlsx';
A =xlsread(filename);
[m,n]=size(A);
T= A(:,1);
data= A(:,(2:end));
rows80=int32(floor(0.8 * m));
trainingset=A(1:rows80,:);
testset=A(rows80+1:end,:);
t=trainingset(1:rows80,1);
t_test=A(rows80+1:end,1);
% k=10
% cvFols=crossvalind('kfold',l,k);
% for i =1:k
% testIdx=(cvFolds==i);
% trainIdx=~test;
%
%
net= newff(trainingset',t');
y=sim(net,trainingset');
%net.trainParam.epoch=20;
net= train(net,trainingset',t');
y=sim(net,trainingset');
y_test=sim(net,testset');
p=0;
y1=hardlim(y');
y2= hardlims(y_test);
for(i=1:size(t,1))
if(t(i,:)==y1(i,:))
p=p+1;
end
end
trainerror =100*p/size(trainingset,1);
e=0;
y2=hardlim(y_test');
for(j=1:size(t_test,1))
if(t_test(j,:)==y2(j,:))
e=e+1;
end
end
testerror=100*e/size(t_test,1)

回答 (1 件)

Greg Heath
Greg Heath 2018 年 12 月 5 日
You may be confused. The MATLAB DEFAULT is RANDOM DATA DIVISION with
80% training
10% validation (tends to prevent overtraining)
10% testing
Depending om the size of the data, you can obtain 10 to 20 separate designs and choose the best.
Instead of storing all of the weights, I just store the current best net as I loop through the designs.
I am sure that I have posted zillions of examples in both the NEWSGROUP comp.soft.sys.matlab and ANSWERS.
Hope this helps.
Thank you for formally accepting my answer
Greg

カテゴリ

Help Center および File ExchangeDeep Learning Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by