BDVal supports SVM classifiers (implemented with libSVM) or weka classifiers.


SVM classifiers are used by default. The user can pass training parameters to the classification engine with the BDVal –classifier-parameters option.

The libSVM classifier will aim to produce probability estimates by default. This option is computationally expensive because cross-validation is used to fit the decision value of the SVM to a sigmoid curve. Another problem with libSVM probability estimates is that the estimates are generated using a random generator seeded with time. This makes it impossible to reproduce the probabilities between two rounds of model training and can really confuse model performance comparisons. For these reasons, we recommend to disable probability estimates when training with libSVM. To disable probability estimates, use the BDVal option –classifier-parameters probability=false


To use a weka classifier, use the –classifier and –classifier-parameters options.

The following will cause BDVal to train a NaiveBayes classifier:

  --classifier-parameters wekaClass=weka.classifiers.bayes.NaiveBayesUpdateable

Other classifiers implemented include:

Random Forestweka.classifiers.trees.RandomForest
Logistic Regression weka.classifiers.functions.SimpleLogistic
Logit Boostweka.classifiers.meta.LogitBoost

Please note that weka classifiers cannot be used with svm-weight, iterative-svm-weight, and other modes that select features by ranking them by support vector machine weight. Genetic algorithm feature selection combined with t-test or fold-change or other statistics should be used to select features for weka classifiers.