![]() |
pktools
2.6.6
Processing Kernel for geospatial data
|
program to optimize parameters for support vector machine classifier pksvm
Usage: pkoptsvm -t training
Options: [-cc startvalue -cc endvalue] [-g startvalue -g endvalue] [-stepcc stepsize] [-stepg stepsize]
Advanced options:
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.
-short or --long options (both --long=value and --long value are supported)-h shows basic options only, long option --help shows all options | short | long | type | default | description |
|---|---|---|---|---|
| t | training | std::string | 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). | |
| cc | ccost | float | 1 | min and max boundaries the parameter C of C-SVC, epsilon-SVR, and nu-SVR (optional: initial value) |
| g | gamma | float | 0 | min max boundaries for gamma in kernel function (optional: initial value) |
| stepcc | stepcc | double | 2 | multiplicative step for ccost in GRID search |
| stepg | stepg | double | 2 | multiplicative step for gamma in GRID search |
| i | input | std::string | input test vector file | |
| tln | tln | std::string | training layer name(s) | |
| label | label | std::string | label | identifier for class label in training vector file. |
| bal | balance | unsigned int | 0 | balance the input data to this number of samples for each class |
| random | random | bool | true | in case of balance, randomize input data |
| min | min | int | 0 | if number of training pixels is less then min, do not take this class into account |
| b | band | unsigned short | band index (starting from 0, either use band option or use start to end) | |
| sband | startband | unsigned short | Start band sequence number | |
| eband | endband | unsigned short | End band sequence number | |
| offset | offset | double | 0 | offset value for each spectral band input features: refl[band]=(DN[band]-offset[band])/scale[band] |
| scale | scale | double | 0 | scale value for each spectral band input features: refl=(DN[band]-offset[band])/scaleband |
| svmt | svmtype | std::string | C_SVC | type of SVM (C_SVC, nu_SVC,one_class, epsilon_SVR, nu_SVR) |
| kt | kerneltype | std::string | radial | type of kernel function (linear,polynomial,radial,sigmoid) |
| kd | kd | unsigned short | 3 | degree in kernel function |
| c0 | coef0 | float | 0 | coef0 in kernel function |
| nu | nu | float | 0.5 | the parameter nu of nu-SVC, one-class SVM, and nu-SVR |
| eloss | eloss | float | 0.1 | the epsilon in loss function of epsilon-SVR |
| cache | cache | int | 100 | cache memory size in MB |
| etol | etol | float | 0.001 | the tolerance of termination criterion |
| shrink | shrink | bool | false | whether to use the shrinking heuristics |
| pe | probest | bool | true | whether to train a SVC or SVR model for probability estimates |
| cv | cv | unsigned short | 2 | n-fold cross validation mode |
| cf | cf | bool | false | use Overall Accuracy instead of kappa |
| maxit | maxit | unsigned int | 500 | maximum number of iterations |
| tol | tolerance | double | 0.0001 | relative tolerance for stopping criterion |
| c | class | std::string | list of class names. | |
| r | reclass | short | list of class values (use same order as in class opt). |
1.8.6