I want to learn a model for recognizing facial emotions. . I used a dataset with 213 samples. I extract firstly features using the Gabor filter. Then, I reduce the data dimensionality with the PCA and the genetic algorithm. Finally, I test performance using cross validation with a test size of 25%, and I got 98% acuraccy. The problem is when I test the SVM model on other images, I don't get the expected result.
Without seeing the data and your code it's hard to examine and tell what's the problem. Below are what I would think as a first step.
98% accuracy is a high level, so I would initially check for over-fitting. The ideal solution to over-fitting is using more data. If you can't, then increasing the portion of the training dataset (maybe to 50%) and then going through cv & testing might help.
Another common reason is over/under-represented class. What's the ratio between the classes?