MatLab自带的SVM,快速入门使用

MatLab自带的SVM一共集成了两个函数: svmtrainsvmclassify
1.首先查看你的MatLab版本是否已经集成了SVM,我的版本R2013a,主要参考MatLab帮助文档(自带demo)
>> help svmtrain
 svmtrain Train a support vector machine classifier
    SVMSTRUCT = svmtrain(TRAINING, Y) trains a support vector machine (SVM)
    classifier on data taken from two groups. TRAINING is a numeric matrix
    of predictor data. Rows of TRAINING correspond to observations; columns
    correspond to features. Y is a column vector that contains the known
    class labels for TRAINING. Y is a grouping variable, i.e., it can be a
    categorical, numeric, or logical vector; a cell vector of strings; or a
    character matrix with each row representing a class label (see help for
    groupingvariable). Each element of Y specifies the group the
    corresponding row of TRAINING belongs to. TRAINING and Y must have the
    same number of rows. SVMSTRUCT contains information about the trained
    classifier, including the support vectors, that is used by SVMCLASSIFY
    for classification. svmtrain treats NaNs, empty strings or 'undefined'
    values as missing values and ignores the corresponding rows in
    TRAINING and Y.

2.下面是使用文档:
 SVMSTRUCT = svmtrain(TRAINING, Y, 'PARAM1',val1, 'PARAM2',val2, ...)
    specifies one or more of the following name/value pairs:
 
       Name                Value
       'kernel_function'  A string or a function handle specifying the
                          kernel function used to represent the dot
                          product in a new space. The value can be one of
                          the following:
                          'linear'     - Linear kernel or dot product
                                         (default). In this case, svmtrain
                                         finds the optimal separating plane
                                         in the original space.
                          'quadratic'  - Quadratic kernel
                          'polynomial' - Polynomial kernel with default
                                         order 3. To specify another order,
                                         use the 'polyorder' argument.
                          'rbf'        - Gaussian Radial Basis Function
                                         with default scaling factor 1. To
                                         specify another scaling factor,
                                         use the 'rbf_sigma' argument.
                          'mlp'        - Multilayer Perceptron kernel (MLP)
                                         with default weight 1 and default
                                         bias -1. To specify another weight
                                         or bias, use the 'mlp_params'
                                         argument.
                          function     - A kernel function specified using
                                         @(for example @KFUN), or an
                                         anonymous function. A kernel
                                         function must be of the form
 
                                         function K = KFUN(U, V)
 
                                         The returned value, K, is a matrix
                                         of size M-by-N, where M and N are
                                         the number of rows in U and V
                                         respectively.
 
    'rbf_sigma'           A positive number specifying the scaling factor
                          in the Gaussian radial basis function kernel.
                          Default is 1.
 
    'polyorder'           A positive integer specifying the order of the
                          polynomial kernel. Default is 3.
 
    'mlp_params'          A vector [P1 P2] specifying the parameters of MLP
                          kernel.  The MLP kernel takes the form:
                          K = tanh(P1*U*V' + P2),
                          where P1 > 0 and P2 < 0. Default is [1,-1].
 
    'method'              A string specifying the method used to find the
                          separating hyperplane. Choices are:
                          'SMO' - Sequential Minimal Optimization (SMO)
                                  method (default). It implements the L1
                                  soft-margin SVM classifier.
                          'QP'  - Quadratic programming (requires an
                                  Optimization Toolbox license). It
                                  implements the L2 soft-margin SVM
                                  classifier. Method 'QP' doesn't scale
                                  well for TRAINING with large number of
                                  observations.
                          'LS'  - Least-squares method. It implements the
                                  L2 soft-margin SVM classifier.
 
    'options'             Options structure created using either STATSET or
                          OPTIMSET.
                          * When you set 'method' to 'SMO' (default),
                            create the options structure using STATSET.
                            Applicable options:
                            'Display'  Level of display output.  Choices
                                     are 'off' (the default), 'iter', and
                                     'final'. Value 'iter' reports every
                                     500 iterations.
                            'MaxIter'  A positive integer specifying the
                                     maximum number of iterations allowed.
                                     Default is 15000 for method 'SMO'.
                          * When you set method to 'QP', create the
                            options structure using OPTIMSET. For details
                            of applicable options choices, see QUADPROG
                            options. SVM uses a convex quadratic program,
                            so you can choose the 'interior-point-convex'
                            algorithm in QUADPROG.
 
   'tolkkt'              A positive scalar that specifies the tolerance
                         with which the Karush-Kuhn-Tucker (KKT) conditions
                         are checked for method 'SMO'. Default is
                         1.0000e-003.
 
   'kktviolationlevel'   A scalar specifying the fraction of observations
                         that are allowed to violate the KKT conditions for
                         method 'SMO'. Setting this value to be positive
                         helps the algorithm to converge faster if it is
                         fluctuating near a good solution. Default is 0.
 
   'kernelcachelimit'    A positive scalar S specifying the size of the
                         kernel matrix cache for method 'SMO'. The
                         algorithm keeps a matrix with up to S * S
                         double-precision numbers in memory. Default is
                         5000. When the number of points in TRAINING
                         exceeds S, the SMO method slows down. It's
                         recommended to set S as large as your system
                         permits.
 
   'boxconstraint'       The box constraint C for the soft margin. C can be
                         a positive numeric scalar or a vector of positive
                         numbers with the number of elements equal to the
                         number of rows in TRAINING.
                         Default is 1.
                         * If C is a scalar, it is automatically rescaled
                           by N/(2*N1) for the observations of group one,
                           and by N/(2*N2) for the observations of group
                           two, where N1 is the number of observations in
                           group one, N2 is the number of observations in
                           group two. The rescaling is done to take into
                           account unbalanced groups, i.e., when N1 and N2
                           are different.
                         * If C is a vector, then each element of C
                           specifies the box constraint for the
                           corresponding observation.
 
    'autoscale'          A logical value specifying whether or not to
                         shift and scale the data points before training.
                         When the value is true, the columns of TRAINING
                         are shifted and scaled to have zero mean unit
                         variance. Default is true.
 
    'showplot'           A logical value specifying whether or not to show
                         a plot. When the value is true, svmtrain creates a
                         plot of the grouped data and the separating line
                         for the classifier, when using data with 2
                         features (columns). Default is false.
 
    SVMSTRUCT is a structure having the following properties:
 
    SupportVectors       Matrix of data points with each row corresponding
                         to a support vector. 
                         Note: when 'autoscale' is false, this field
                         contains original support vectors in TRAINING.
                         When 'autoscale' is true, this field contains
                         shifted and scaled vectors from TRAINING.
    Alpha                Vector of Lagrange multipliers for the support
                         vectors. The sign is positive for support vectors
                         belonging to the first group and negative for
                         support vectors belonging to the second group.
    Bias                 Intercept of the hyperplane that separates
                         the two groups.
                         Note: when 'autoscale' is false, this field
                         corresponds to the original data points in
                         TRAINING. When 'autoscale' is true, this field
                         corresponds to shifted and scaled data points.
    KernelFunction       The function handle of kernel function used.
    KernelFunctionArgs   Cell array containing the additional arguments
                         for the kernel function.
    GroupNames           A column vector that contains the known
                         class labels for TRAINING. Y is a grouping
                         variable (see help for groupingvariable).
    SupportVectorIndices A column vector indicating the indices of support
                         vectors.
    ScaleData            This field contains information about auto-scale.
                         When 'autoscale' is false, it is empty. When
                         'autoscale' is set to true, it is a structure
                         containing two fields:
                         shift       - A row vector containing the negative
                                       of the mean across all observations
                                       in TRAINING.
                         scaleFactor - A row vector whose value is
                                       1./STD(TRAINING).
    FigureHandles        A vector of figure handles created by svmtrain
                         when 'showplot' argument is TRUE.
 
    Example:
        % Load the data and select features for classification
        load fisheriris
        X = [meas(:,1), meas(:,2)];
        % Extract the Setosa class
        Y = nominal(ismember(species,'setosa'));
        % Randomly partitions observations into a training set and a test
        % set using stratified holdout
        P = cvpartition(Y,'Holdout',0.20);
        % Use a linear support vector machine classifier
        svmStruct = svmtrain(X(P.training,:),Y(P.training),'showplot',true);
        C = svmclassify(svmStruct,X(P.test,:),'showplot',true);
        errRate = sum(Y(P.test)~= C)/P.TestSize  %mis-classification rate
        conMat = confusionmat(Y(P.test),C) % the confusion matrix
 
    See also svmclassify, NaiveBayes, classregtree, classify, TreeBagger,
             groupingvariable

    Reference page in Help browser
       doc svmtrain
文档最佳观看效果:在MatLab中使用doc svmtrain命令


3.一个例子:Examples
Find a line separating the Fisher iris data on versicolor and
virginica species, according to the petal length and petal width measurements.
These two species are in rows 51 and higher of the data set, and the
petal length and width are the third and fourth columns.

load fisheriris
xdata = meas(51:end,3:4);
group = species(51:end);
svmStruct = svmtrain(xdata,group,'showplot',true);

也可以在线查看文档:http://www.mathworks.com/help/releases/R2013a/stats/svmtrain.html

另外,这个写的不错(例子写的非常好):
《(Matlab)SVM工具箱快速入手简易教程》
ps.关于例子,百度文库里有结果图可看,其他各种转载的博客上无图。


还有一个博客介绍(我没试,不知道文中要下载的svm和MatLab自带的svm是不是一回事):
http://zyy554221.blog.sohu.com/82115143.html?qq-pf-to=pcqq.c2c

你可能感兴趣的:(MatLab自带的SVM,快速入门使用)