Svmda and Peaksigmoid: Difference between pages

From Eigenvector Research Documentation Wiki
(Difference between pages)
Jump to navigation Jump to search
imported>Donal
 
imported>Mathias
 
Line 1: Line 1:
===Purpose===
===Purpose===
Outputs a sigmoid function.


SVMDA Support Vector Machine (LIBSVM) for classification.


===Synopsis===
===Synopsis===


:model = svmda(x,y,options);          %identifies model (calibration step)
:[i0,iw] = peakfind(x,width,tolfac,w,options)
:pred  = svmda(x,model,options);      %makes predictions with a new X-block
:[i0,iw] = peakfind(x,width,options)
:pred  = svmda(x,y,model,options);  %performs a "test" call with a new X-block and known y-values


===Description===


SVMDA performs calibration and application of Support Vector Machine (SVM) classification models. (Please see the svm function for support vector machine regression problems). These are non-linear models which can be used for classification problems. The model consists of a number of support vectors (essentially samples selected from the calibration set) and non-linear model coefficients which define the non-linear mapping of variables in the input x-block to allow prediction of the classification as passed in either as the classes field of the x-block or in a y-block which contains numerical classes. It is recommended that regression be done through the svm function.
====Inputs====


Svmda is implemented using the LIBSVM package which provides both cost-support vector regression (C-SVC) and nu-support vector regression (nu-SVC). Linear and Gaussian Radial Basis Function kernel types are supported by this function.
* '''x''' =  3 element vector where x(1) = coefficient, x(2) = offset and x(3) is equal to the decay constant


Note: Calling svmda with no inputs starts the graphical user interface (GUI) for this analysis method.
====Inputs====
* '''x''' = X-block (predictor block) class "double" or "dataset", containing numeric values,
* '''y''' = Y-block (predicted block) class "double" or "dataset", containing integer values,
* '''model''' = previously generated model (when applying model to new data).


====Outputs====
====Outputs====


* '''model''' = a standard model structure model with the following fields (see MODELSTRUCT):
** '''modeltype''': 'SVM',
** '''datasource''': structure array with information about input data,
** '''date''': date of creation,
** '''time''': time of creation,
** '''info''': additional model information,
** '''pred''': 2 element cell array with
*** model predictions for each input block (when options.blockdetail='normal' x-block predictions are not saved and this will be an empty array)
** '''detail''': sub-structure with additional model details and results, including:
*** model.detail.svm.model: Matlab version of the libsvm svm_model (Java)
*** model.detail.svm.cvscan: results of CV parameter scan
*** model.detail.svm.outlier: results of outlier detection (one-class svm)
* '''pred''' a structure, similar to '''model''' for the new data.


===Options===
''options'' =  a structure array with the following fields:


* '''display''': [ 'off' | {'on'} ], governs level of display to command window,
* '''plots''' [ 'none' | {'final'} ], governs level of plotting,
* '''preprocessing''': {[]} preprocessing structures for x block (see PREPROCESS). NOTE that y-block preprocessing is NOT used with SVMs. Any y-preprocessing will be ignored.
* '''blockdetails''': [ {'standard'} | 'all' ], extent of predictions and residuals included in model, 'standard' = only y-block, 'all' x- and y-blocks.
* '''algorithm''': [ 'libsvm' ] algorithm to use. libsvm is default and currently only option.
* '''kerneltype''': [ 'linear' | {'rbf'} ], SVM kernel to use. 'rbf' is default.
* '''svmtype''': [ {'c-svc'} | 'nu-svc' ] Type of SVM to apply. The default is 'c-svc' for classification.
* '''probabilityestimates''': [0| {1} ], whether to train the SVR model for probability estimates, 0 or 1 (default 1)"


* '''cvtimelimit''': Set a time limit (seconds) on individual cross-validation sub-calculation when searching over supplied SVM parameter ranges for optimal parameters. Only relevant if parameter ranges are used for SVM parameters such as cost, epsilon, gamma or nu. Default is 2 (seconds);
<math>\sqrt{1-e^2}</math>
* '''splits''': Number of subsets to divide data into when applying n-fold cross validation. Default is 5.
* '''gamma''': Value(s) to use for LIBSVM kernel gamma parameter. Default is 15 values from 10^-6 to 10, spaced uniformly in log.
* '''cost''': Value(s) to use for LIBSVM 'c' parameter. Default is 11 values from 10^-3 to 100, spaced uniformly in log.
* '''nu''': Value(s) to use for LIBSVM 'n' parameter (nu of nu-SVC, and nu-SVR). Default is the set of values [0.2, 0.5, 0.8].
* '''outliernu''': Value to use for nu in LIBSVM's one-class svm outlier detection. (0.05).


===Algorithm===
<math>f\left( {{a}_{i}},\mathbf{x} \right)={{x}_{1}}\left[ {{x}_{4}}{{\operatorname{e}}^{\frac{-4\ln \left( 2 \right){{\left( {{a}_{i}}-{{x}_{2}} \right)}^{2}}}{x_{3}^{2}}}}+\left( 1-{{x}_{4}} \right)\left[ \frac{x_{3}^{2}}{{{\left( {{a}_{i}}-{{x}_{2}} \right)}^{2}}+x_{3}^{2}} \right] \right]</math>
Svmda uses the LIBSVM implementation using the user-specified values for the LIBSVM parameters (see ''options'' above). See [http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf] for further details of these options.


The default SVMDA parameters cost, nu and gamma have value ranges rather than single values. This svm function uses a search over the grid of appropriate parameters using cross-validation to select the optimal SVM parameter values and builds an SVM model using those values. This is the recommended usage. The user can avoid this grid-search by passing in single values for these parameters, however.
*'''<math>{\operatorname{d2}\!y\over\operatorname{d2}\!x}</math>'''


===See Also===


[[analysis]], [[svm]]
* '''<math>{\operatorname{d}\!y\over\operatorname{d}\!{x}_{i}}</math>'''

Revision as of 13:31, 1 August 2016

Purpose

Outputs a sigmoid function.


Synopsis

[i0,iw] = peakfind(x,width,tolfac,w,options)
[i0,iw] = peakfind(x,width,options)


Inputs

  • x = 3 element vector where x(1) = coefficient, x(2) = offset and x(3) is equal to the decay constant


Outputs