Why don't get the expected result using a SVM training model?
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 &amp; testing might help.

Another common reason is over/under-represented class. What's the ratio between the classes?