Svm: Difference between revisions
imported>Donal |
imported>Donal No edit summary |
||
Line 66: | Line 66: | ||
[[analysis]], [[plsda]] | [[analysis]], [[plsda]] | ||
Revision as of 14:31, 25 January 2010
Purpose
SVM Support Vector Machine (LIBSVM) for regression or classification.
Synopsis
- model = svm(x,y,options); %identifies model (calibration step)
- pred = svm(x,model,options); %makes predictions with a new X-block
- pred = svm(x,y,model,options); %performs a "test" call with a new X-block and known y-values
Description
SVM performs calibration and application of Support Vector Machine (SVM) regression models. These are non-linear models which can be used for regression or 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 either the continuous y-block variable (for regression problems), or the classification as passed in either the classes of the x-block or in a y-block which contains numerical classes. It is recommended that classification be done through the svmda function.
Svm is implemented using the LIBSVM package which provides both epsilon-support vector regression (epsilon-SVR) and nu-support vector regression (nu-SVR). Linear and Gaussian Radial Basis Function kernel types are supported by this function.
Note: Calling svm with no inputs starts the graphical user interface (GUI) for this analysis method.
Inputs
- x = X-block (predictor block) class "double" or "dataset",
- y = Y-block (predicted block) class "double" or "dataset",
- model = previously generated model (when applying model to new data).
Outputs
- model = a standard model structure model with the following fields (see MODELSTRUCT):
- modeltype: 'PLS',
- datasource: structure array with information about input data,
- date: date of creation,
- time: time of creation,
- info: additional model information,
- reg: regression vector,
- loads: cell array with model loadings for each mode/dimension,
- 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),and
- the y-block predictions.
- wts: double array with X-block weights,
- tsqs: cell array with T2 values for each mode,
- ssqresiduals: cell array with sum of squares residuals for each mode,
- description: cell array with text description of model, and
- detail: sub-structure with additional model details and results.
- pred a structure, similar to model, that contains scores, predictions, etc. for the new data.
- valid a structure, similar to model, that contains scores, predictions, and additional y-block statistics, etc. for the new data.
Options
***TODO*** 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,
- outputversion: [ 2 | {3} ], governs output format (see below),
- preprocessing: {[] []}, two element cell array containing preprocessing structures (see PREPROCESS) defining preprocessing to use on the x- and y-blocks (first and second elements respectively)
- algorithm: [ 'nip' | {'sim'} | 'robustpls' ], PLS algorithm to use: NIPALS or SIMPLS {default}, and
- blockdetails: [ {'standard'} | 'all' ], extent of predictions and residuals included in model, 'standard' = only y-block, 'all' x- and y-blocks.
Algorithm
Note that xxx