I have a confusion regarding Support Vector Machine (SVM).
I am implementing facial expression recognition using SVM in OpenCV libraries. I have a classifier trained from a collection of seven basic human expressions (neutral, happy, sad, surprise, anger, fear, and disgust) from various people. Let us just say a new person comes in and SVM tries to predict this person. Would it guess correctly (or at least recognize it with lower recognition rate)?
I tried to do this and check using cross-validation (where I separate training and test set), and after many iteration the recognition rate averages around 50%. However, if I test on facial images it already learns in training set, the recognition rate boosts up to 90%.
This paper which also does facial expression recognition says:
We base our method on the machine learning system of Support Vector Machines (SVMs). A face feature tracker gathers a set of displacements from feature motion in the video stream. These are subsequently used to train an SVM classifier to recognize previously unseen expressions
So my main question is,
Does this mean SVM cannot predict an unseen sample (a new person mimicking one of the expresions mentioned above) correctly ?
Hope someone can help and I hope I am clear enough
P.S what I mean by unseen expression is that a new person (that the SVM hasn't seen before) but the person mimicks one of the expression I mentioned above. not other expressions.
generalization. quality of generalization depends on the samples and features you've chosen for training. Normally you use only x % of your training samples for training and use the rest for testing the generalization. Testing for your (used for training) training set doesnt make much sense. So in general you split the training set randomly and train. if generalization isnt good enough, reset and choose different randomly chosen samples for training. If you dont get good results, acquire more samples or choose different features. - Micka