Installation
Step1: Check for installed MPI
Before installing πSvM make sure to have a properly installed MPI library. A popular MPI implementation that runs on most flavours of unix is MPICH. To check if you have it type the following:
$ which mpirun
/usr/bin/mpirun
$ which mpicc
/usr/bin/mpicc
$ which mpicxx
/usr/bin/mpicxx
You might get slightly different terminal output depending on the location where MPI was installed. If you get something like "which: no mpirun..." you have to install MPI before proceeding.
Step2: Download
Download the πSvM sources (pisvm-1.0.tgz) and unpack the tarball:
$ tar xvzf pisvm-1.0.tgz
$ cd pisvm-1.0
Step3: Compile everything
This is the easiest part. Just go to your download directory type "make" and check that there are no errors.
$ make
mpicxx -Wall -O3 -I. -D SOLVER_PSMO -c svm.cpp
mpicxx -Wall -O3 pisvm-train.c svm.o -o pisvm-train -lm
mpicxx -Wall -O3 pisvm-predict.c svm.o -o pisvm-predict -lm
Step4: Test it
If everything went fine you now have the executables pisvm-train and pisvm-predict for parallel training and testing. To see a list of command line options and check if the last step was successful type:
./pisvm-train
Usage: svm-train [options] training_set_file [model_file]
options:
-s svm_type : set type of SVM (default 0)
0 -- C-SVC
1 -- nu-SVC
2 -- one-class SVM
3 -- epsilon-SVR
4 -- nu-SVR
-t kernel_type : set type of kernel function (default 2)
0 -- linear: u'*v
1 -- polynomial: (gamma*u'*v + coef0)^degree
2 -- radial basis function: exp(-gamma*|u-v|^2)
3 -- sigmoid: tanh(gamma*u'*v + coef0)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/k)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 40)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking: whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
-wi weight: set the parameter C of class i to weight*C, for C-SVC (default 1)
-v n: n-fold cross validation mode
-o n: max. size of working set
-q n: max. number of new variables entering working set