DOKK / manpages / debian 12 / pktools / pkoptsvm.1.en
pkoptsvm(1) pkoptsvm(1)

pkoptsvm - program to optimize parameters for SVM classification


pkoptsvm
-t training [options] [advanced options]

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.

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).
input test vector file
min and max boundaries the parameter C of C-SVC, epsilon-SVR, and nu-SVR (optional: initial value)
min max boundaries for gamma in kernel function (optional: initial value)
multiplicative step for ccost and gamma in GRID search
use 1 to output intermediate results for plotting

Advanced options

training layer name(s)
identifier for class label in training vector file. (default: label)
balance the input data to this number of samples for each class (default: 0)
in case of balance, randomize input data
if number of training pixels is less then min, do not take this class into account
band index (starting from 0, either use band option or use start to end)
start band sequence number
end band sequence number
offset value for each spectral band input features: refl[band]=(DN[band]-offset[band])/scale[band]
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)
type of SVM (C_SVC, nu_SVC,one_class, epsilon_SVR, nu_SVR)
type of kernel function (linear,polynomial,radial,sigmoid)
degree in kernel function
coef0 in kernel function
the parameter nu of nu-SVC, one-class SVM, and nu-SVR
the epsilon in loss function of epsilon-SVR
cache memory size in MB (default: 100)
the tolerance of termination criterion (default: 0.001)
whether to use the shrinking heuristics
n-fold cross validation mode (default: 0)
use Overall Accuracy instead of kappa
maximum number of iterations
relative tolerance for stopping criterion (default: 0.0001)
GRID, or any optimization algorithm from http://ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms
list of class names.
list of class values (use same order as in --class option).
01 December 2022