I have a database of images of 213 examples (7 classes). First, I extracted the features where I got 212 features. CAD, I maintain a data matrix of 213x212. I used the genetic algorithm for both optimize SVM hyperparameters and feature selection (with binary chromosome). For this, i divided my dataset to training set (75%) and test set (25%). In each chromosome, i calculate fitness function based on test set accuracy (i never use test set for training). I noticed that the recognition rate in each generation increases, where i finally got a accuracy rate equal to 98%. The problem is when I test the SVM model on other images, I don't get the expected result. Is this an over-learning problem? someone can help me?

Edit 1: I used a Gabor filter to extract the features from this 213 images. I obtained 50,000 features, I then reduce the number of dimensions with PCA in order to obtain 212 features (with the retention of 99% of information).

  • 7
    $\begingroup$ You seem to have an awful lot of parameters for a data set with just 213 observations and seven classes, so I absolutely could believe that you’ve overfit. $\endgroup$ – Dave Apr 20 '20 at 5:44
  • $\begingroup$ what do you offer as a solution to solve this problem? $\endgroup$ – Adel Madrid Apr 20 '20 at 10:58
  • $\begingroup$ Regularise appropriately and use repeated cross-validation. $\endgroup$ – usεr11852 Apr 20 '20 at 13:50
  • $\begingroup$ I read on the repeated cross validation, but how i can use repeated cross validation in my case. By changing the learningSet randomly in each generation ??? $\endgroup$ – Adel Madrid Apr 20 '20 at 18:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.