Shape classification algorithm
That sounds like you're suffering from overfitting, probable duo the "curse of dimensionality", which means 2 things. 


When trying to measure distance between two points in high dimensional space and trying to interpret this data, the difference between the longest and the shortest distance get's less meaningful.
Trying to train an algorithm with way less samples then features, like in your case, will cause that the algorithm will memorize your samples.


I see 3 options. Getting more data, reduce your feature set or try greater values for C. C will regularize the decision boundary.

More to read: 


Curse of dimensionality
n >> p