i have dataset which contains data from 10 subject. My idea fir cross validaytion is leave one person out cross validation. Here i trian on data from 9 subjects and test on data from 1. When we normally do cross validation, we have a stopping criteria which avoids model overfitting.
How do I avoid overfittiing in my case.
below is code snippet
for idx = 1:N%k = LOOCV train on rest; validate on K- meal
s = [1:idx-1 idx+1:N];
Xtrain= Training(s); %(all remaining datasets)
Xvalidate = Training(idx);% idx dataset
Xtrainlabel = Training_labels(s);
Xvalidatelabel = Training_labels(idx);
Mdl = fitcsvm(XTrain(:,featsel),...
XTrainlabel);
[trainSVM,trainScoreSVM] = resubPredict(Mdl); %training
%- Cross-validate the classifier
CVSVMModel = crossval( Mdl );
%validation
Yval_pred= predict(Mdl, XValidate(:, featsel)); %validation
[cmV,order] = confusionmat(Yval_pred, actual_val);
tnV = cmV(1,1);
fnV = cmV(1,2);
fpV = cmV(2,1);
tpV = cmV(2,2);
Accuracy(idx) = (tp+fp)./(tp+fp+tn+fn);
end

2 Kommentare

Wan Ji
Wan Ji am 20 Aug. 2021
Use dropoutLayer may help you avoid model overfitting. Try it
pallavi patil
pallavi patil am 20 Aug. 2021
i am using svm as classifier. I supoose dropoutLayer works for neural network.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Prince Kumar
Prince Kumar am 7 Sep. 2021

0 Stimmen

You can try the following methods:
  1. Remove features
  2. Feature Selection
  3. Regularization
  4. Ensemble models if you are ok with trying models other than SVM

Kategorien

Mehr zu Deep Learning Toolbox finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020b

Gefragt:

am 19 Aug. 2021

Beantwortet:

am 7 Sep. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by