加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SVMtrain函数用法

(2012-11-21 09:24:17)
标签:

杂谈

svmtrain用法  

       1.最近结合ACO和SVM做分类,于是仔细看了下svmtrain的help文档。现结合该doc文档,做简单整理,希望对

svm入门者有点帮助哦。

         svmtrain:用于训练支持向量机分类器。语法格式如下:

SVMStruct = svmtrain(Training, Group)

SVMStruct = svmtrain(..., 'Kernel_Function', Kernel_FunctionValue, ...)

SVMStruct = svmtrain(..., 'RBF_Sigma', RBFSigmaValue, ...)

SVMStruct = svmtrain(..., 'Polyorder', PolyorderValue, ...)

SVMStruct = svmtrain(..., 'Mlp_Params', Mlp_ParamsValue, ...)

SVMStruct = svmtrain(..., 'Method', MethodValue, ...)

SVMStruct = svmtrain(..., 'QuadProg_Opts', QuadProg_OptsValue, ...)

SVMStruct = svmtrain(..., 'SMO_Opts', SMO_OptsValue, ...)

SVMStruct = svmtrain(..., 'BoxConstraint', BoxConstraintValue, ...)

SVMStruct = svmtrain(..., 'Autoscale', AutoscaleValue, ...)

SVMStruct = svmtrain(..., 'Showplot', ShowplotValue, ...)

解释如下:

 Training是一个M行N列的矩阵,M是样本数,N是特征维数。Group:是个列向量,表示样本对应的类别,用字符串表示(可以用数字或单个字符)。

classifier is returned in SVMStruct, a structure with the following fields. 'Kernel_Function', Kernel_FunctionValue,.......'Showplot', ShowplotValue这些在svmtrain中是可选项。他们在svmtrain中出现的顺序是无关紧要的。但必须成对出现,前面单引号里的是字符标记,后面给出的是对应的值。Kernel_FunctionValue 有如下些可选类别: 

  • linear — Default. Linear kernel or dot product.
  • quadratic — Quadratic kernel.
  • rbf — Gaussian Radial Basis Function kernel with a default scaling factor, sigma, of 1.
  • polynomial — Polynomial kernel with a default order of 3.
  • mlp — Multilayer Perceptron kernel with default scale and bias parameters of [1, -1].

 如可通过如下来设定核函数为Gaussian Radial Basis Function kernel :

SVMStruct = svmtrain(Training, Group, 'Kernel_Function', rbf);

 

%%-------------------------分割线---------------------------------------------------------------------- 

        svmtrain( … );

%通过训练集来训练模型 svmpredict( … );%对测试集进行预测 >>model = svmtrain(train_label, train_matrix, ['libsvm_options']); -train_label:            An m by 1 vector of training labels (type must be double).-train_matrix:            An m by n matrix of m training instances with n features.            It can be dense or sparse (type must be double).-libsvm_options:            A string of training options in the same format as that of LIBSVM.===============The 'svmtrain' function returns a model which can be used for futureprediction.  >> [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(test_label, test_matrix, model, ['libsvm_options']); -test_label:            An m by 1 vector of prediction labels. If labels of test            data are unknown, simply use any random values. (type must be double)-testmatrix:            An m by n matrix of m testing instances with n features.            It can be dense or sparse. (type must be double)-model:            The output of svmtrain.-libsvm_options:            A string of testing options in the same format as that of LIBSVM.===============  English:libsvm_options:-s svm_type : set type of SVM (default 0)0 -- C-SVC1 -- nu-SVC2 -- one-class SVM3 -- epsilon-SVR4 -- nu-SVR-t kernel_type : set type of kernel function (default 2)0 -- linear: u'*v1 -- polynomial: (gamma*u'*v + coef0)^degree2 -- radial basis function: exp(-gamma*|u-v|^2)3 -- sigmoid: tanh(gamma*u'*v + coef0)4 -- precomputed kernel (kernel values in training_instance_matrix)-d degree : set degree in kernel function (default 3)-g gamma : set gamma in kernel function (default 1/k)-r coef0 : set coef0 in kernel function (default 0)-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)-m cachesize : set cache memory size in MB (default 100)-e epsilon : set tolerance of termination criterion (default 0.001)-h shrinking: whether to use the shrinking heuristics, 0 or 1 (default 1)-b probability_estimates: whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)-wi weight: set the parameter C of class i to weight*C, for C-SVC (default 1)-v n: n-fold cross validation mode==========================================================Chinese:Options:可用的选项即表示的涵义如下  -s svm类型:SVM设置类型(默认0)  0 -- C-SVC  1 --v-SVC  2 – 一类SVM  3 -- e -SVR  4 -- v-SVR  -t 核函数类型:核函数设置类型(默认2)  0 – 线性:u'v  1 – 多项式:(r*u'v + coef0)^degree  2 – RBF函数:exp(-r|u-v|^2)  3 –sigmoid:tanh(r*u'v + coef0)  -d degree:核函数中的degree设置(针对多项式核函数)(默认3)  -g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k)  -r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)  -c cost:设置C-SVC,e -SVR和v-SVR的参数(损失函数)(默认1)  -n nu:设置v-SVC,一类SVM和v- SVR的参数(默认0.5)  -p p:设置e -SVR 中损失函数p的值(默认0.1)  -m cachesize:设置cache内存大小,以MB为单位(默认40)  -e eps:设置允许的终止判据(默认0.001)  -h shrinking:是否使用启发式,0或1(默认1)  -wi weight:设置第几类的参数C为weight?C(C-SVC中的C)(默认1)  -v n: n-fold交互检验模式,n为fold的个数,必须大于等于2  其中-g选项中的k是指输入数据中的属性数。option -v 随机地将数据剖分为n部分并计算交互检验准确度和均方根误差。以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。

%%-------------------------分割线---------------------------------------------------------------------- 

 

3.有时需要将变量转化为字符形式,这个很有用的,这个时候就需要记住num2str(variable,precison)哦。

例如:

用svm时,model=svmtrain(Lables,constants,'-c 1  -g  10')

为了可以用循环来调试到一个好的参数,可以用num2str这个函数将变量转化为字符型。

a=0.8, b=10,

cmd=['-c',' ',num2str(a),' ','-g',' ',num2str(b)];%这里' '是为了空格

model=svmstrain(Labels,constant,cmd);

%%-------------------------分割线---------------------------------------------------------------------- 

4.svm一点资料  

接触svm有些时候,还没有仔细研究过,这是个初级菜。有些入门资料,看了下还可以,有需要的可以给我发邮件。
另下面一些信息对做svm感兴趣的人也许有用:

http://www.cs.utexas.edu/

http://svmlight.Joachim

台湾大学资讯系林智仁开发的libsvm,可下c++源码:

http://www.csie.ntu.edu.tw/~cslin/libsvm 

中科院计算所,文本分类系统

http://www.nlp.org.cn/docs/doclist.php

 

%%-------------------------分割线---------------------------------------------------------------------- 

 

(转) http://blog.163.com/liu_xi_en/blog/#m=0&t=1&c=fks_087068081081083069081095094095086094080068080083086069

转自http://hi.baidu.com/wangjin_sun/item/f2ee95dde47311ea795daa4d

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有