I applied SVM to perform the classification against several data sets. It turns out that the performance metric of recall is pretty bad for one data set. It has recall around 50% while other data sets have recall around 80%. For this kind of scenario, what are the possible approaches that are available to improve the recall? Besides, why some data sets can have a poor performance in terms of recall? How to analyze this kind of problem?
Are you sure that your data-set is balanced (# of negative examples close to # of positive examples)? SVM is very limited when the dataset is imbalanced...
Low recall means you have many false negatives, which might mean that you have more positive examples than negatives?
SVM algorithms sometimes have a difficult time of determining a good value of the offset.
You should construct an ROC curve (http://en.wikipedia.org/wiki/Receiver_operating_characteristic) from the scores that the SVM algorithm outputs. (Sort the scores and use each as a positive/negative classification threshold.)
Then, based on the ROC curve, set the new offset parameter as the score that best balances the precision/recall.
Alternatively, you could use one of the SvmPerf (http://svmlight.joachims.org/svm_perf.html) options that allows you to directly optimize precision and recall.