注册 | 登录


cleverlzc 分享于



MatLab自带的SVM一共集成了两个函数: svmtrain和 svmclassify。 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(,:),Y(,'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);
另外,这个写的不错(例子写的非常好): 《(Matlab)SVM工具箱快速入手简易教程》 ps.关于例子,百度文库里有结果图可看,其他各种转载的博客上无图。


MatLab自带的SVM一共集成了两个函数: svmtrain和 svmclassify。 1.首先查看你的MatLab版本是否已经集成了SVM,我的版本R2013a,主要参考MatLab帮助文档(自带demo) >> help svmtrain  svmtrain








您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱