pkoptsvm(1)

program to optimize parameters for SVM classification

Section 1 pktools bookworm source

Description

pkoptsvm

NAME

pkoptsvm - program to optimize parameters for SVM classification

SYNOPSIS

pkoptsvm -t training [options] [advanced options]

DESCRIPTION

pkoptsvm The support vector machine depends on several parameters. Ideally, these parameters should be optimized for each classification problem. In case of a radial basis kernel function, two important parameters are {cost} and {gamma}. The utility pkoptsvm can optimize these two parameters, based on an accuracy assessment (the Kappa value). If an input test set (-i) is provided, it is used for the accuracy assessment. If not, the accuracy assessment is based on a cross validation (-cv) of the training sample.

The optimization routine uses a grid search. The initial and final values of the parameters can be set with -cc startvalue -cc endvalue and -g startvalue -g endvalue for cost and gamma respectively. The search uses a multiplicative step for iterating the parameters (set with the options -stepcc and -stepg). An often used approach is to define a relatively large multiplicative step first (e.g 10) to obtain an initial estimate for both parameters. The estimate can then be optimized by defining a smaller step (>1) with constrained start and end values for the parameters cost and gamma.

OPTIONS

-t filename, --training filename

training vector file. A single vector file contains all training features (must be set as: b0, b1, b2,...) for all classes (class numbers identified by label option).

-i filename, --input filename

input test vector file

-cc startvalue -cc endvalue, --ccost startvalue --ccost endvalue

min and max boundaries the parameter C of C-SVC, epsilon-SVR, and nu-SVR (optional: initial value)

-g startvalue -g endvalue, --gamma startvalue --gamma endvalue

min max boundaries for gamma in kernel function (optional: initial value)

-step stepsize, --step stepsize

multiplicative step for ccost and gamma in GRID search

-v level, --verbose level

use 1 to output intermediate results for plotting

Advanced options
-tln
layer, --tln layer

training layer name(s)

-label attribute, --label attribute

identifier for class label in training vector file. (default: label)

-bal size, --balance size

balance the input data to this number of samples for each class (default: 0)

-random, --random

in case of balance, randomize input data

-min number, --min number

if number of training pixels is less then min, do not take this class into account

-b band, --band band

band index (starting from 0, either use band option or use start to end)

-sband band, --startband band

start band sequence number

-eband band, --endband band

end band sequence number

-offset value, --offset value

offset value for each spectral band input features: refl[band]=(DN[band]-offset[band])/scale[band]

-scale value, --scale value

scale value for each spectral band input features: refl=(DN[band]-offset[band])/scale[band] (use 0 if scale min and max in each band to -1.0 and 1.0)

-svmt type, --svmtype type

type of SVM (C_SVC, nu_SVC,one_class, epsilon_SVR, nu_SVR)

-kt type, --kerneltype type

type of kernel function (linear,polynomial,radial,sigmoid)

-kd value, --kd value

degree in kernel function

-c0 value, --coef0 value

coef0 in kernel function

-nu value, --nu value

the parameter nu of nu-SVC, one-class SVM, and nu-SVR

-eloss value, --eloss value

the epsilon in loss function of epsilon-SVR

-cache number, --cache number

cache memory size in MB (default: 100)

-etol value, --etol value

the tolerance of termination criterion (default: 0.001)

-shrink, --shrink

whether to use the shrinking heuristics

-cv value, --cv value

n-fold cross validation mode (default: 0)

-cf, --cf

use Overall Accuracy instead of kappa

-maxit number, --maxit number

maximum number of iterations

-tol value, --tolerance value

relative tolerance for stopping criterion (default: 0.0001)

-a value, --algorithm value

GRID, or any optimization algorithm from http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms

-c name, --class name

list of class names.

-r value, --reclass value

list of class values (use same order as in --class option).