0
votes

I have 20 classes of video data like { biking, diving, riding,swing,dancing,playinghocky, playingCricket,juggling,golf,tennis, bandMarcching. billiards, surfing,skyDiving running, walking, waving, claping, jogging,boxing, etc.} each with 70 sample videos. i'm taking total 8 frames from each videos in the difference of 10 frames. I have find LBP features of these data and trying to train SVM with 10 classes at a time in matlab using 'svmtrain' and classify trined model using 'svmclassify' matlab commands. And the code is successfully traing my data and classify.

Now my problem is getting good performence with only few 2 or 3 classes rest are giving 10 or 20% when i'm training svm with lbp of { biking, diving, riding,swing,dancing,playinghocky, playingCricket,juggling,golf,tennis} But as i replace few of these training class with some other class like if i replace diving and golf with billiards and surfing then then train the svm. Then i see performance of some classes are reduced and some are increase like biking performance increase 55 from 49 and dancing increase from 89 to 92.25. similarly riding and tennis get decreased performance.

similarly i have did several test with varied performance and getting each time performance of class some times increase and some times decrease. My question is why this is happening? should i have to take different classifier or what i have to change in my code ??

1

1 Answers

0
votes

This could be due to multiple reasons.

  1. Data imbalance among classes. This is a universal problem with classification systems. Search web for algorithms which are least affected by it that might help.

  2. Classes having redundant or correlating features. For eg. biking and riding might appear a little more similar than golf and surfing. Try to make your features more complex.

Using just a different algorithm won't be that helpful but you can try.

Better featuring engineering along with Ensembling are the first things you should try.