SVM vs. artificial neural network I have multiclass unbalanced data (4 class with 15% 25% 45% 15% data in each class). Which method is good for classification of such data- SVM or ANN? 
UPDATE- Let me make the question little more general. @Dikran Marsupial said in one answer "choice of classifier depends on the nature of the particular dataset" but what are the factors that one should consider before choosing a classifier. I understand the first chose may not give best answer all the time but it can be a good starting point. So what properties of data I should consider before choosing a classifier??
 A: For specificity in the following I'm going to assume that an ANN here means a feedforward multilayer neural network / perceptron as discussed in e.g. Bishop 1996. and an SVM is the the vanilla version e.g. from Hastie and Tibshirani.
@Dikran Marsupial's points about the structure of the domain are important ones.  In fact you might want to read DM's other answer about SVMs.  The possibility of having a posterior over classes is important if you expect to apply a loss function or otherwise act on your level of classification certainty as well as the actual classification.  If not: well, not.
In addition, I can see four more ways to choose.
Loss function
One way to distinguish the two is to decide whose loss function you prefer.  Classically, ANNs have smooth loss functions, e.g. cross-entropy for multi-class classification.  SVMs tend to have some kind of 'hinge loss': 0 to a point then increasing.  One of these may be a more natural fit to your problem.
Data size 
Another consideration is data size and storage.  You mention your category balance but not the total size of the data.  SVMs by definition keep and use only the 'support vectors', a subset of observations that anchor the separating hyperplane(s).  This can make for a small final classifier.  Also, traditional ANN training can be slow - the space of functions as smooth as the implicit gaussian process that your ANN is approximating with its finite number of hidden nodes is large...
Multiple classes
If you have multi-category data, SVMs have several ways to construct the necessary multi-class classifier out of individual two class SVM models.  At least three methods are available which, as @fabee points out, may not give the same answers.  His reference looks like a useful one.  The options are a lot clearer in ordinary smoothed statistical classification model territory, where your ANN belongs.
Interpretability 
If you care about discerning the the importance of different covariates, then ANNs give you hyperparameters to do so, although more traditional methods might be as or more efficient and straightforward at this, e.g. the Lasso (L1 regularisation) for linear regression models.  If prediction success is your only goal then this aspect is, of course, irrelevant.
A: The no-free lunch theorems suggest there is no classifier that is a priori superior to any other, and the choice of classifier depends on the nature of the particular data set.  I wouldn't cmomit myself to a choice of classifier and would instead evaluate several methods.
The classes are only mildly imbalanced, so I suspect that shouldn't be a key factor in the decision of which classifier to use.  
A more important question would be whether you wanted a simple discrete classification, or whether you wanted estimates of the probabilities of class membership, for examples because you have unknown or variable mis-classification costs, or relative class frequencies, or if it would be beneficial to have a "reject" option.  In that case the SVM is not a good choice as it is designed for discrete classification, and rather than post-processing the output to get probabilities it is better to use a method that was designed to provide a probabilistic output in the first place, such as kernel logistic regression.
A: This question cannot be answered generically. It even depends on the multi-class classification strategy that you are using (i.e. one-vs-one, one-vs-rest, ...). Personally, I would use an SVM and choose an multi-class strategy that fit my problem and my computational resources. A nice paper how to do that is: 

Reducing Multiclass to Binary: A Unifying Approach for Margin Classifiers
  Erin L Allwein, Robert E Schapire, Yoram Singer in Journal of Machine Learning Research (2001)

If you want every class of your dataset to be equally important you can either use the quick and dirty hack of cloning datapoints in the smaller classes until each class has the same number of datapoints or you could use an SVM implementation that allows you to set different penalization constants C for each class.
