Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

I built a SVM-based classifier against a data set, the precision is about 66% and the recall is about 88%. Generally, what are the options to tune the parameter that can increase the precision?

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

I've used the approach described in this paper to some success: Cohen, 2006

Although the data used in this paper is specific to the biomedical literature, the approach gets at a larger issue in machine learning--that of the trade-off between precision and recall. In biomedicine, we generally deal with highly skewed data (i.e., one or more rare classes, and one prominent class), which is sometimes the source of the results you're describing. For example, if I'm classifying 100 data points, 95 of which belong to class A, and 5 of which belong to class B, many machine learning algorithms (SVM included) will just classify everything/most things as class A, yielding great recall but awful precision.

share|improve this answer
add comment

See section 3.1 of [Morik, et al, 1999], which reads:

"...Since we will be dealing with very unbalanced numbers of positive and negative examples, we introduce cost factors C_+ and C_- to be able to adjust the cost of false positives vs. false negatives...".

The quadratic optimization problem follows that quote. When C_+ > C_-, precision is increased.

Now, if you want just an out-of-the-box solution, the ratio of C_+ to C_- can be passed as the -j parameter to SVMLight.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.